fn filter_map_fold<T, B, Acc>(
    f: impl FnMut(T) -> Option<B>,
    fold: impl FnMut(Acc, B) -> Acc
) -> impl FnMut(Acc, T) -> Acc