sig
val find : ('a -> bool) -> 'a list -> 'a option
val rfind : ('a -> bool) -> 'a list -> 'a option
val findi : (int -> 'a -> bool) -> 'a list -> (int * 'a) option
val split_at :
int ->
'a list -> [ `Invalid_argument of string | `Ok of 'a list * 'a list ]
val at : 'a list -> int -> [ `Invalid_argument of string | `Ok of 'a ]
val assoc : 'a -> ('a * 'b) list -> 'b option
val assoc_inv : 'b -> ('a * 'b) list -> 'a option
val assq : 'a -> ('a * 'b) list -> 'b option
val find_map : ('a -> 'b option) -> 'a list -> 'b option
val hd : 'a list -> 'a option
val tl : 'a list -> 'a list option
val last : 'a list -> 'a option
val reduce : ('a -> 'a -> 'a) -> 'a list -> 'a option
val min_max : ?cmp:('a -> 'a -> int) -> 'a list -> ('a * 'a) option
val max : ?cmp:('a -> 'a -> int) -> 'a list -> 'a option
val min : ?cmp:('a -> 'a -> int) -> 'a list -> 'a option
end