sig
  type 'a t
  val fold : 'Container.T.t -> init:'-> f:('-> '-> 'b) -> 'b
end