sig
  type _ t
  val foldl : ('-> '-> 'a) -> '-> 'b t -> 'a
  val foldr : ('-> (unit -> 'b) -> 'b) -> (unit -> 'b) -> 'a t -> 'b
  val foldr' : ('-> '-> 'b) -> '-> 'a t -> 'b
  val fold_map :
    (module Monoid.S with type t = 'm) -> ('-> 'm) -> 'a t -> 'm
  val any : ('-> bool) -> 'a t -> bool
  val all : ('-> bool) -> 'a t -> bool
  val find : ('-> bool) -> 'a t -> 'a option
end