sig
module type T =
sig type 'a t val fold : 'a t -> init:'b -> f:('b -> 'a -> 'b) -> 'b end
val fold_count :
('a -> init:int -> f:(int -> 'b -> int) -> 'c) ->
'a -> f:('b -> bool) -> 'c
module Make :
functor (T : T) ->
sig
val fold : 'a T.t -> init:'b -> f:('b -> 'a -> 'b) -> 'b
val count : 'a T.t -> f:('a -> bool) -> int
val iter : 'a T.t -> f:('a -> unit) -> unit
val length : 'a T.t -> int
val is_empty : 'a T.t -> bool
val exists : 'a T.t -> f:('a -> bool) -> bool
val mem : ?equal:('a -> 'a -> bool) -> 'a T.t -> 'a -> bool
val for_all : 'a T.t -> f:('a -> bool) -> bool
val find_map : 'a T.t -> f:('a -> 'b option) -> 'b option
val find : 'a T.t -> f:('a -> bool) -> 'a option
val to_list : 'a T.t -> 'a list
val to_array : 'a T.t -> 'a array
end
module type S0 =
sig
type t
type elt
val mem : ?equal:(elt -> elt -> bool) -> t -> elt -> bool
val length : t -> int
val is_empty : t -> bool
val iter : t -> f:(elt -> unit) -> unit
val fold : t -> init:'accum -> f:('accum -> elt -> 'accum) -> 'accum
val exists : t -> f:(elt -> bool) -> bool
val for_all : t -> f:(elt -> bool) -> bool
val count : t -> f:(elt -> bool) -> int
val find : t -> f:(elt -> bool) -> elt option
val find_map : t -> f:(elt -> 'a option) -> 'a option
val to_list : t -> elt list
val to_array : t -> elt array
end
module type S0_phantom =
sig
type elt
type 'a t
val mem : ?equal:(elt -> elt -> bool) -> 'a t -> elt -> bool
val length : 'a t -> int
val is_empty : 'a t -> bool
val iter : 'a t -> f:(elt -> unit) -> unit
val fold : 'a t -> init:'accum -> f:('accum -> elt -> 'accum) -> 'accum
val exists : 'a t -> f:(elt -> bool) -> bool
val for_all : 'a t -> f:(elt -> bool) -> bool
val count : 'a t -> f:(elt -> bool) -> int
val find : 'a t -> f:(elt -> bool) -> elt option
val find_map : 'b t -> f:(elt -> 'a option) -> 'a option
val to_list : 'a t -> elt list
val to_array : 'a t -> elt array
end
module type S1 =
sig
type 'a t
val mem : ?equal:('a -> 'a -> bool) -> 'a t -> 'a -> bool
val length : 'a t -> int
val is_empty : 'a t -> bool
val iter : 'a t -> f:('a -> unit) -> unit
val fold : 'a t -> init:'accum -> f:('accum -> 'a -> 'accum) -> 'accum
val exists : 'a t -> f:('a -> bool) -> bool
val for_all : 'a t -> f:('a -> bool) -> bool
val count : 'a t -> f:('a -> bool) -> int
val find : 'a t -> f:('a -> bool) -> 'a option
val find_map : 'a t -> f:('a -> 'b option) -> 'b option
val to_list : 'a t -> 'a list
val to_array : 'a t -> 'a array
end
module type S1_phantom =
sig
type ('a, +'phantom) t
val mem : ?equal:('a -> 'a -> bool) -> ('a, 'b) t -> 'a -> bool
val length : ('a, 'b) t -> int
val is_empty : ('a, 'b) t -> bool
val iter : ('a, 'b) t -> f:('a -> unit) -> unit
val fold :
('a, 'b) t -> init:'accum -> f:('accum -> 'a -> 'accum) -> 'accum
val exists : ('a, 'b) t -> f:('a -> bool) -> bool
val for_all : ('a, 'b) t -> f:('a -> bool) -> bool
val count : ('a, 'b) t -> f:('a -> bool) -> int
val find : ('a, 'b) t -> f:('a -> bool) -> 'a option
val find_map : ('a, 'c) t -> f:('a -> 'b option) -> 'b option
val to_list : ('a, 'b) t -> 'a list
val to_array : ('a, 'b) t -> 'a array
end
module type Generic =
sig
type 'a t
type 'a elt
val mem : ?equal:('a elt -> 'a elt -> bool) -> 'a t -> 'a elt -> bool
val length : 'a t -> int
val is_empty : 'a t -> bool
val iter : 'a t -> f:('a elt -> unit) -> unit
val fold :
'a t -> init:'accum -> f:('accum -> 'a elt -> 'accum) -> 'accum
val exists : 'a t -> f:('a elt -> bool) -> bool
val for_all : 'a t -> f:('a elt -> bool) -> bool
val count : 'a t -> f:('a elt -> bool) -> int
val find : 'a t -> f:('a elt -> bool) -> 'a elt option
val find_map : 'a t -> f:('a elt -> 'b option) -> 'b option
val to_list : 'a t -> 'a elt list
val to_array : 'a t -> 'a elt array
end
module type Generic_phantom =
sig
type ('a, 'phantom) t
type 'a elt
val mem :
?equal:('a elt -> 'a elt -> bool) -> ('a, 'b) t -> 'a elt -> bool
val length : ('a, 'b) t -> int
val is_empty : ('a, 'b) t -> bool
val iter : ('a, 'b) t -> f:('a elt -> unit) -> unit
val fold :
('a, 'b) t -> init:'accum -> f:('accum -> 'a elt -> 'accum) -> 'accum
val exists : ('a, 'b) t -> f:('a elt -> bool) -> bool
val for_all : ('a, 'b) t -> f:('a elt -> bool) -> bool
val count : ('a, 'b) t -> f:('a elt -> bool) -> int
val find : ('a, 'b) t -> f:('a elt -> bool) -> 'a elt option
val find_map : ('a, 'c) t -> f:('a elt -> 'b option) -> 'b option
val to_list : ('a, 'b) t -> 'a elt list
val to_array : ('a, 'b) t -> 'a elt array
end
module Check :
functor (T : T.T1) ->
functor (Elt : T.T1) ->
functor
(M : sig
val mem :
?equal:('a Elt.t -> 'a Elt.t -> bool) ->
'a T.t -> 'a Elt.t -> bool
val length : 'a T.t -> int
val is_empty : 'a T.t -> bool
val iter : 'a T.t -> f:('a Elt.t -> unit) -> unit
val fold :
'a T.t ->
init:'accum -> f:('accum -> 'a Elt.t -> 'accum) -> 'accum
val exists : 'a T.t -> f:('a Elt.t -> bool) -> bool
val for_all : 'a T.t -> f:('a Elt.t -> bool) -> bool
val count : 'a T.t -> f:('a Elt.t -> bool) -> int
val find : 'a T.t -> f:('a Elt.t -> bool) -> 'a Elt.t option
val find_map :
'a T.t -> f:('a Elt.t -> 'b option) -> 'b option
val to_list : 'a T.t -> 'a Elt.t list
val to_array : 'a T.t -> 'a Elt.t array
end) ->
sig end
module Check_S0 : functor (M : S0) -> sig end
module Check_S0_phantom : functor (M : S0_phantom) -> sig end
module Check_S1 : functor (M : S1) -> sig end
type phantom = Container.phantom
module Check_S1_phantom : functor (M : S1_phantom) -> sig end
val ounit_tests : unit -> OUnit.test
end