sig type 'a t val init : 'a Fold_map.Foldable2.t val f : 'a Fold_map.Foldable2.t -> 'a -> 'a Fold_map.Foldable2.t end