include module type of Stdlib.ListLabels
type !'a t = 'a list = | []| :: of 'a * 'a list
val length : 'a list -> intval compare_lengths : 'a list -> 'b list -> intval compare_length_with : 'a list -> len:int -> intval is_empty : 'a list -> boolval cons : 'a -> 'a list -> 'a listval tl : 'a list -> 'a listval nth : 'a list -> int -> 'aval nth_opt : 'a list -> int -> 'a optionval rev : 'a list -> 'a listval init : len:int -> f:(int -> 'a) -> 'a listval append : 'a list -> 'a list -> 'a listval rev_append : 'a list -> 'a list -> 'a listval concat : 'a list list -> 'a listval flatten : 'a list list -> 'a listval equal : eq:('a -> 'a -> bool) -> 'a list -> 'a list -> boolval compare : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> intval iter : f:('a -> unit) -> 'a list -> unitval iteri : f:(int -> 'a -> unit) -> 'a list -> unitval map : f:('a -> 'b) -> 'a list -> 'b listval mapi : f:(int -> 'a -> 'b) -> 'a list -> 'b listval rev_map : f:('a -> 'b) -> 'a list -> 'b listval filter_map : f:('a -> 'b option) -> 'a list -> 'b listval concat_map : f:('a -> 'b list) -> 'a list -> 'b listval fold_left_map : 
  f:('acc -> 'a -> 'acc * 'b) ->
  init:'acc ->
  'a list ->
  'acc * 'b listval fold_left : f:('acc -> 'a -> 'acc) -> init:'acc -> 'a list -> 'accval fold_right : f:('a -> 'acc -> 'acc) -> 'a list -> init:'acc -> 'accval iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unitval map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c listval rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c listval fold_left2 : 
  f:('acc -> 'a -> 'b -> 'acc) ->
  init:'acc ->
  'a list ->
  'b list ->
  'accval fold_right2 : 
  f:('a -> 'b -> 'acc -> 'acc) ->
  'a list ->
  'b list ->
  init:'acc ->
  'accval for_all : f:('a -> bool) -> 'a list -> boolval exists : f:('a -> bool) -> 'a list -> boolval for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> boolval exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> boolval mem : 'a -> set:'a list -> boolval memq : 'a -> set:'a list -> boolval find_opt : f:('a -> bool) -> 'a list -> 'a optionval find_index : f:('a -> bool) -> 'a list -> int optionval find_map : f:('a -> 'b option) -> 'a list -> 'b optionval find_mapi : f:(int -> 'a -> 'b option) -> 'a list -> 'b optionval filter : f:('a -> bool) -> 'a list -> 'a listval find_all : f:('a -> bool) -> 'a list -> 'a listval filteri : f:(int -> 'a -> bool) -> 'a list -> 'a listval take : int -> 'a list -> 'a listval drop : int -> 'a list -> 'a listval take_while : f:('a -> bool) -> 'a list -> 'a listval drop_while : f:('a -> bool) -> 'a list -> 'a listval partition : f:('a -> bool) -> 'a list -> 'a list * 'a listval partition_map : 
  f:('a -> ('b, 'c) Stdlib.Either.t) ->
  'a list ->
  'b list * 'c listval assoc : 'a -> ('a * 'b) list -> 'bval assoc_opt : 'a -> ('a * 'b) list -> 'b optionval assq : 'a -> ('a * 'b) list -> 'bval assq_opt : 'a -> ('a * 'b) list -> 'b optionval mem_assoc : 'a -> map:('a * 'b) list -> boolval mem_assq : 'a -> map:('a * 'b) list -> boolval remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) listval remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) listval split : ('a * 'b) list -> 'a list * 'b listval combine : 'a list -> 'b list -> ('a * 'b) listval stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a listval fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a listval sort_uniq : cmp:('a -> 'a -> int) -> 'a list -> 'a listval merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a listval to_seq : 'a list -> 'a Stdlib.Seq.tval of_seq : 'a Stdlib.Seq.t -> 'a listval sexp_of_t : ('a -> Sexplib0.Sexp.t) -> 'a t -> Sexplib0.Sexp.tval dedup_and_sort : 'a list -> compare:('a -> 'a -> int) -> 'a listval filter_opt : 'a option list -> 'a listval find : 'a list -> f:('a -> bool) -> 'a optionval fold : 'a list -> init:'b -> f:('b -> 'a -> 'b) -> 'bval hd : 'a list -> 'a optionval sort : 'a list -> compare:('a -> 'a -> int) -> 'a list