fn filter_fold<T, Acc>( predicate: impl FnMut(&T) -> bool, fold: impl FnMut(Acc, T) -> Acc ) -> impl FnMut(Acc, T) -> Acc