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:('-> 'b) -> 'a list -> 'b list   val iter2 : f:('-> '-> unit) -> 'a list -> 'b list -> unit   val map2 : f:('-> '-> 'c) -> 'a list -> 'b list -> 'c list   val rev_map2 : f:('-> '-> 'c) -> 'a list -> 'b list -> 'c list   val fold_left2 :     f:('-> '-> '-> 'a) -> init:'-> 'b list -> 'c list -> 'a   val fold_right2 :     f:('-> '-> '-> 'c) -> 'a list -> 'b list -> init:'-> 'c   val for_all2 : f:('-> '-> bool) -> 'a list -> 'b list -> bool   val exists2 : f:('-> '-> bool) -> 'a list -> 'b list -> bool   val mem : '-> set:'a list -> bool   val memq : '-> set:'a list -> bool   val find_all : f:('-> bool) -> 'a list -> 'a list   val partition : f:('-> 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:('-> '-> int) -> 'a list -> 'a list   val stable_sort : cmp:('-> '-> int) -> 'a list -> 'a list   val fast_sort : cmp:('-> '-> int) -> 'a list -> 'a list   val sort_uniq : cmp:('-> '-> 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:('-> bool) -> 'a list   val filter : 'a list -> f:('-> bool) -> 'a list   val find_map : 'a list -> f:('-> 'b option) -> 'b option   val find : 'a list -> f:('-> bool) -> 'a option   val find_exn : 'a list -> f:('-> bool) -> 'a   val findi : 'a list -> f:(int -> '-> bool) -> (int * 'a) option   val exists : 'a list -> f:('-> bool) -> bool   val for_all : 'a list -> f:('-> bool) -> bool   val iter : 'a list -> f:('-> unit) -> unit   val fold : 'a list -> init:'-> f:('-> '-> 'b) -> 'b   val fold_left : 'a list -> init:'-> f:('-> '-> 'b) -> 'b   val to_array : 'a list -> 'a array   val to_list : '-> '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:('-> 'b) -> 'b list   val count_map : f:('-> 'b) -> 'a list -> int -> 'b list   val map : 'a list -> f:('-> 'b) -> 'b list   val fold_right : 'a list -> f:('-> '-> 'b) -> init:'-> 'b   val rev_mapi : 'a list -> f:(int -> '-> 'b) -> i:int -> 'b list   val count_mapi : f:(int -> '-> 'b) -> 'a list -> int -> 'b list   val mapi : 'a list -> f:(int -> '-> 'b) -> 'b list   val map2_slow : 'a list -> 'b list -> f:('-> '-> 'c) -> 'c list   val count_map2_exn :     f:('-> '-> 'c) -> 'a list -> 'b list -> int -> 'c list   val map2_exn : 'a list -> 'b list -> f:('-> '-> 'c) -> 'c list   val iteri : 'a list -> f:(int -> '-> unit) -> unit   val foldi : 'a list -> f:(int -> '-> '-> 'b) -> init:'-> 'b   val filteri : 'a list -> f:(int -> '-> bool) -> 'a list   val reduce : 'a list -> f:('-> '-> 'a) -> 'a option   val concat_map : 'a list -> f:('-> 'b list) -> 'b list   val concat_mapi : 'a list -> f:(int -> '-> 'b list) -> 'b list   val merge : 'a list -> 'a list -> cmp:('-> '-> int) -> 'a list   val last : 'a list -> 'a option   val remove_consecutive_duplicates :     'a list -> equal:('-> '-> bool) -> 'a list   val dedup : ?compare:('-> '-> int) -> 'a list -> 'a list   val contains_dup : ?compare:('-> '-> int) -> 'a list -> bool   val find_a_dup : ?compare:('-> '-> int) -> 'a list -> 'a option   val init : int -> f:(int -> 'a) -> 'a list   val rev_filter_map : 'a list -> f:('-> 'b option) -> 'b list   val filter_map : 'a list -> f:('-> 'b option) -> 'b list   val filter_opt : 'a option list -> 'a list   val partition_map :     'a list -> f:('-> [< `Fst of '| `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:('-> bool) -> 'a list * 'a list   val take_while : 'a list -> f:('-> bool) -> 'a list   val drop_while : 'a list -> f:('-> bool) -> 'a list   module Assoc :     sig       val get : '-> ('a * 'b) list -> 'b option       val getq : '-> ('a * 'b) list -> 'b option       val mem : '-> map:('a * 'b) list -> bool       val memq : '-> map:('a * 'b) list -> bool       val remove_assoc : '-> ('a * 'b) list -> ('a * 'b) list       val remove_assq : '-> ('a * 'b) list -> ('a * 'b) list       val remove_and_get :         '-> ('a * 'b) list -> ('b * ('a * 'b) list) option       val remove_and_getq :         '-> ('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