sig
  type container
  type elt
  val mem : ?equal:(elt -> elt -> bool) -> container -> elt -> bool
  val length : container -> int
  val is_empty : container -> bool
  val iter : container -> f:(elt -> unit) -> unit
  val fold : container -> init:'-> f:('-> elt -> 'a) -> 'a
  val exists : container -> f:(elt -> bool) -> bool
  val for_all : container -> f:(elt -> bool) -> bool
  val find : container -> f:(elt -> bool) -> elt option
  val to_list : container -> elt list
  val to_array : container -> elt array
  val container : (elt, container) Container.type_class
end