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