val pure_bind : 'a list -> ('a -> 'b) -> 'b listval pure : 'a -> 'a listval bind : 'a list -> ('a -> 'b list) -> 'b listval concat_map : ('a -> 'b list) -> 'a list -> 'b listval maximum : 'a list -> 'a optionval repeat : int -> 'a -> 'a listval sequence : 'a list list -> 'a list listval filter_somes : 'a option list -> 'a listval intersperse : 'a -> 'a list -> 'a listval range : low:int -> high:int -> int listval remove_first : 'a -> 'a list -> 'a listval permutations : 'a list -> 'a list listval map3 : ('a -> 'b -> 'c -> 'd) -> 'a list -> 'b list -> 'c list -> 'd listval hd_opt : 'a list -> 'a optionval tl_opt : 'a list -> 'a list optionval uncons : 'a list -> ('a * 'a list) optionval is_empty : 'a list -> boolval transpose : 'a list list -> 'a list listval collapse_equal : 'a list -> 'a optionval index_left : 'a list -> (int * 'a) listval index_right : 'a list -> ('a * int) listval find_map : ('a -> 'b option) -> 'a list -> 'b optionval sum : int list -> intval fsum : float list -> floatval average : float list -> float optionval take : int -> 'a list -> 'a listval drop : int -> 'a list -> 'a listval cartesian_product : 'a list -> 'b list -> ('a * 'b) listval count : ('a -> bool) -> 'a list -> int