public static Maybe <IRoseTree <N, L> > Filter <N, L>(this IRoseTree <N, L> source, Func <L, bool> f) => source.Choose(x => f(x) ? Just(x) : Nothing);