fact: Definition fold (R : Type) (f : A -> R -> R) (init : R) (s : T) : R := @fold_mon Foldable_T (R -> R) {| monoid_plus := fun f g x => f (g x) ; monoid_unit := fun x => x |} f s init.
imports: Coq.Lists.List ExtLib.Structures.Monoid