# Functor Container_unit_tests.Test_generic

    module Test_generic: functor (Elt : sig
    type 'a t

    val of_int : int -> int t
    val to_int : int t -> intend) -> functor (Container : sig
    type 'a t

    include Generic

    val of_list : 'a Elt.t list -> 'a t
    val t_of_sexp : (Sexplib.Sexp.t -> 'a) -> Sexplib.Sexp.t -> 'a t
    val sexp_of_t : ('a -> Sexplib.Sexp.t) -> 'a t -> Sexplib.Sexp.tend) -> sig .. end

Parameters:

`Elt` | : | `sig type 'a t val of_int : int -> int t val to_int : int t -> int end`
`Container` | : | `sig type 'a t with sexp include Generic with type 'a t := 'a t with type 'a elt := 'a Elt.t val of_list : 'a Elt.t list -> 'a t end`

    val find : 'a Container.t -> f:('a Elt.t -> bool) -> 'a Elt.t option

    val find_map : 'a Container.t -> f:('a Elt.t -> 'b option) -> 'b option

    val fold : 'a Container.t -> init:'b -> f:('b -> 'a Elt.t -> 'b) -> 'b

    val is_empty : 'a Container.t -> bool

    val iter : 'a Container.t -> f:('a Elt.t -> unit) -> unit

    val length : 'a Container.t -> int

    val mem : ?equal:('a Elt.t -> 'a Elt.t -> bool) -> 'a Container.t -> 'a Elt.t -> bool

    val sexp_of_t : ('a -> Sexplib.Sexp.t) -> 'a Container.t -> Sexplib.Sexp.t

    val t_of_sexp : (Sexplib.Sexp.t -> 'a) -> Sexplib.Sexp.t -> 'a Container.t

    val to_array : 'a Container.t -> 'a Elt.t array

    val to_list : 'a Container.t -> 'a Elt.t list

    val min_elt : 'a Container.t -> cmp:('a Elt.t -> 'a Elt.t -> int) -> 'a Elt.t option

    val max_elt : 'a Container.t -> cmp:('a Elt.t -> 'a Elt.t -> int) -> 'a Elt.t option

    val count : 'a Container.t -> f:('a Elt.t -> bool) -> int

    val sum : (module Commutative_group.S with type t = 'a) ->
           'b Container.t -> f:('b Elt.t -> 'a) -> 'a

    val exists : 'a Container.t -> f:('a Elt.t -> bool) -> bool

    val for_all : 'a Container.t -> f:('a Elt.t -> bool) -> bool