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