sig
val length : 'a list -> int
val rev : 'a list -> 'a list
val rev_append : 'a list -> 'a list -> 'a list
val concat : 'a list list -> 'a list
val flatten : 'a list list -> 'a list
val rev_map : f:('a -> 'b) -> 'a list -> 'b list
val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
val fold_left2 :
f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
val fold_right2 :
f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
val mem : 'a -> set:'a list -> bool
val memq : 'a -> set:'a list -> bool
val find_all : f:('a -> bool) -> 'a list -> 'a list
val partition : f:('a -> bool) -> 'a list -> 'a list * 'a list
val split : ('a * 'b) list -> 'a list * 'b list
val combine : 'a list -> 'b list -> ('a * 'b) list
val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
val sort_uniq : cmp:('a -> 'a -> int) -> 'a list -> 'a list
val hd_exn : 'a list -> 'a
val hd : 'a list -> 'a option
val tl_exn : 'a list -> 'a list
val tl : 'a list -> 'a list option
val nth : 'a list -> int -> 'a option
val nth_exn : 'a list -> int -> 'a
val rev_filter : 'a list -> f:('a -> bool) -> 'a list
val filter : 'a list -> f:('a -> bool) -> 'a list
val find_map : 'a list -> f:('a -> 'b option) -> 'b option
val find : 'a list -> f:('a -> bool) -> 'a option
val find_exn : 'a list -> f:('a -> bool) -> 'a
val findi : 'a list -> f:(int -> 'a -> bool) -> (int * 'a) option
val exists : 'a list -> f:('a -> bool) -> bool
val for_all : 'a list -> f:('a -> bool) -> bool
val iter : 'a list -> f:('a -> unit) -> unit
val fold : 'a list -> init:'b -> f:('b -> 'a -> 'b) -> 'b
val fold_left : 'a list -> init:'b -> f:('b -> 'a -> 'b) -> 'b
val to_array : 'a list -> 'a array
val to_list : 'a -> 'a
val slow_append : 'a list -> 'a list -> 'a list
val count_append : 'a list -> 'a list -> int -> 'a list
val append : 'a list -> 'a list -> 'a list
val map_slow : 'a list -> f:('a -> 'b) -> 'b list
val count_map : f:('a -> 'b) -> 'a list -> int -> 'b list
val map : 'a list -> f:('a -> 'b) -> 'b list
val fold_right : 'a list -> f:('a -> 'b -> 'b) -> init:'b -> 'b
val rev_mapi : 'a list -> f:(int -> 'a -> 'b) -> i:int -> 'b list
val count_mapi : f:(int -> 'a -> 'b) -> 'a list -> int -> 'b list
val mapi : 'a list -> f:(int -> 'a -> 'b) -> 'b list
val map2_slow : 'a list -> 'b list -> f:('a -> 'b -> 'c) -> 'c list
val count_map2_exn :
f:('a -> 'b -> 'c) -> 'a list -> 'b list -> int -> 'c list
val map2_exn : 'a list -> 'b list -> f:('a -> 'b -> 'c) -> 'c list
val iteri : 'a list -> f:(int -> 'a -> unit) -> unit
val foldi : 'a list -> f:(int -> 'b -> 'a -> 'b) -> init:'b -> 'b
val filteri : 'a list -> f:(int -> 'a -> bool) -> 'a list
val reduce : 'a list -> f:('a -> 'a -> 'a) -> 'a option
val concat_map : 'a list -> f:('a -> 'b list) -> 'b list
val concat_mapi : 'a list -> f:(int -> 'a -> 'b list) -> 'b list
val merge : 'a list -> 'a list -> cmp:('a -> 'a -> int) -> 'a list
val last : 'a list -> 'a option
val remove_consecutive_duplicates :
'a list -> equal:('a -> 'a -> bool) -> 'a list
val dedup : ?compare:('a -> 'a -> int) -> 'a list -> 'a list
val contains_dup : ?compare:('a -> 'a -> int) -> 'a list -> bool
val find_a_dup : ?compare:('a -> 'a -> int) -> 'a list -> 'a option
val init : int -> f:(int -> 'a) -> 'a list
val rev_filter_map : 'a list -> f:('a -> 'b option) -> 'b list
val filter_map : 'a list -> f:('a -> 'b option) -> 'b list
val filter_opt : 'a option list -> 'a list
val partition_map :
'a list -> f:('a -> [< `Fst of 'b | `Snd of 'c ]) -> 'b list * 'c list
val split_n : 'a list -> int -> 'a list * 'a list
val take : 'a list -> int -> 'a list
val drop : 'a list -> int -> 'a list
val split_while : 'a list -> f:('a -> bool) -> 'a list * 'a list
val take_while : 'a list -> f:('a -> bool) -> 'a list
val drop_while : 'a list -> f:('a -> bool) -> 'a list
module Assoc :
sig
val get : 'a -> ('a * 'b) list -> 'b option
val getq : 'a -> ('a * 'b) list -> 'b option
val mem : 'a -> map:('a * 'b) list -> bool
val memq : 'a -> map:('a * 'b) list -> bool
val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
val remove_and_get :
'a -> ('a * 'b) list -> ('b * ('a * 'b) list) option
val remove_and_getq :
'a -> ('a * 'b) list -> ('b * ('a * 'b) list) option
end
val assoc : [> `Use_sub_module ]
val assq : [> `Use_sub_module ]
val mem_assoc : [> `Use_sub_module ]
val mem_assq : [> `Use_sub_module ]
val remove_assoc : [> `Use_sub_module ]
val remove_assq : [> `Use_sub_module ]
end