sig
val length : 'a list -> int
val hd : 'a list -> 'a
val tl : 'a list -> 'a list
val nth : 'a list -> int -> 'a
val rev : 'a list -> 'a list
val append : 'a list -> '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 iter : ('a -> unit) -> 'a list -> unit
val map : ('a -> 'b) -> 'a list -> 'b list
val rev_map : ('a -> 'b) -> 'a list -> 'b list
val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
val fold_right : ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
val iter2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit
val map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
val rev_map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
val fold_left2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b list -> 'c list -> 'a
val fold_right2 : ('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> 'c -> 'c
val for_all : ('a -> bool) -> 'a list -> bool
val exists : ('a -> bool) -> 'a list -> bool
val for_all2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
val exists2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
val mem : 'a -> 'a list -> bool
val memq : 'a -> 'a list -> bool
val find : ('a -> bool) -> 'a list -> 'a
val filter : ('a -> bool) -> 'a list -> 'a list
val find_all : ('a -> bool) -> 'a list -> 'a list
val partition : ('a -> bool) -> 'a list -> 'a list * 'a list
val assoc : 'a -> ('a * 'b) list -> 'b
val assq : 'a -> ('a * 'b) list -> 'b
val mem_assoc : 'a -> ('a * 'b) list -> bool
val mem_assq : 'a -> ('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 split : ('a * 'b) list -> 'a list * 'b list
val combine : 'a list -> 'b list -> ('a * 'b) list
val sort : ('a -> 'a -> int) -> 'a list -> 'a list
val stable_sort : ('a -> 'a -> int) -> 'a list -> 'a list
val fast_sort : ('a -> 'a -> int) -> 'a list -> 'a list
val merge : ('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
type 'a t = 'a list
val of_option : 'a option -> 'a list
val for_ : 'a list -> ('a -> 'b) -> unit
val map_to_array : ('a -> 'b) -> 'a list -> 'b array
val reduce : 'a Monoid.t -> 'a t -> 'a
val map_reduce_left : ('a -> 'b) -> 'b Monoid.t -> 'a t -> 'b
val map_reduce : ('a -> 'b) -> 'b Monoid.t -> 'a t -> 'b
val reduce_left : ('a -> 'b) -> ('b -> 'b -> 'b) -> 'a list -> 'b
val remove_nth_fast : int -> 'a list -> 'a list
val remove_nth_tailrec : int -> 'a list -> 'a list
val order_by_length : 'a list -> 'a list -> 'a list * 'a list
val rev_map_append : 'a list -> ('a -> 'b) -> 'b list -> 'b list
val find_opt : ('a -> bool) -> 'a list -> 'a option
val drop_while : ('a -> bool) -> 'a list -> 'a list
val last_exn : 'a list -> 'a
val last_opt : 'a list -> 'a option
val concat_with : 'a list -> 'a list list -> 'a list
val split_by_first : ('a -> bool) -> 'a list -> 'a list * 'a list * 'a list
val split_by : ('a -> bool) -> 'a list -> 'a list list
val map_filter : ('a -> 'b option) -> 'a list -> 'b list
val hd_opt : 'a list -> 'a option
val hd_exn : 'a list -> 'a
val get_single : 'a list -> 'a
val get_pair : 'a list -> 'a * 'a
module Assoc :
sig
val map_rwm_assoc_stack_limit : int
val index_opt :
keq:('a -> 'b -> bool) -> 'a -> ('b * 'c) list -> int option
val get_exn : keq:('a -> 'b -> bool) -> 'a -> ('b * 'c) list -> 'c
val get_all : keq:('a -> 'b -> bool) -> 'a -> ('b * 'c) list -> 'c list
val get_opt :
keq:('a -> 'b -> bool) -> 'a -> ('b * 'c) list -> 'c option
val mem : keq:('a -> 'b -> bool) -> 'a -> ('b * 'c) list -> bool
val add : 'a -> 'b -> ('a * 'b) list -> ('a * 'b) list
val remove :
keq:('a -> 'b -> bool) -> 'a -> ('b * 'c) list -> ('b * 'c) list
val to_arrays : ('a * 'b) list -> 'a array * 'b array
val replace :
keq:('a -> 'a -> bool) ->
'a -> 'b -> ('a * 'b) list -> ('a * 'b) list
end
module Monad :
sig
type 'a t = 'a list
val return : 'a -> 'a t
val bind : ('a -> 'b t) -> 'a t -> 'b t
val bind_rev : 'a t -> ('a -> 'b t) -> 'b t
val ( >>= ) : 'a t -> ('a -> 'b t) -> 'b t
end
val map_accum_left : ('a -> 'b -> 'a * 'c) -> 'a -> 'b list -> 'a * 'c list
val fmap : ('a -> 'b) -> 'a list -> 'b list
val dump :
?begins:string ->
?ends:string -> ?delim:string -> 'a #Cdt.tti -> 'a list -> string
class ['a] ti :
?cmp:('a -> 'a -> Cdt.cmp_res) ->
?eq:('a -> 'a -> bool) ->
?hash:('a -> int) ->
?show:('a -> string) ->
'b #Cdt.tti ->
unit ->
object
constraint 'a = 'b list
val v_type_name : Cdt.type_name option ref
method cmp : 'a -> 'a -> Cdt.cmp_res
method eq : 'a -> 'a -> bool
method get_exn : Cdt.ubox -> 'a
method hash : 'a -> int
method meths : Cdt.R.meth_table
method polyapp_Ab : 'c Cdt.polyapp_Ab -> Cdt.ubox -> 'c
method put_func : 'a -> unit -> unit
method show : 'a -> string
method type_desc : Cdt.type_desc
method type_id : Cdt.Type_id.t
method type_name : Cdt.type_name
end
val ti_list_string : string list ti
end