fn map_fold<T, B, Acc>( f: impl FnMut(T) -> B, g: impl FnMut(Acc, B) -> Acc ) -> impl FnMut(Acc, T) -> Acc