functor (T : Make_arg->
  sig
    val mem : ?equal:('-> '-> bool) -> 'T.t -> '-> bool
    val length : 'T.t -> int
    val is_empty : 'T.t -> bool
    val iter : 'T.t -> f:('-> unit) -> unit
    val fold : 'T.t -> init:'accum -> f:('accum -> '-> 'accum) -> 'accum
    val exists : 'T.t -> f:('-> bool) -> bool
    val for_all : 'T.t -> f:('-> bool) -> bool
    val count : 'T.t -> f:('-> bool) -> int
    val sum :
      (module Commutative_group.S with type t = 'sum) ->
      'T.t -> f:('-> 'sum) -> 'sum
    val find : 'T.t -> f:('-> bool) -> 'a option
    val find_map : 'T.t -> f:('-> 'b option) -> 'b option
    val to_list : 'T.t -> 'a list
    val to_array : 'T.t -> 'a array
    val min_elt : 'T.t -> cmp:('-> '-> int) -> 'a option
    val max_elt : 'T.t -> cmp:('-> '-> int) -> 'a option
  end