Module Mavryk_stdlib.TzList

val repeat : int -> 'a -> 'a list

repeat n x is List.of_array (Array.make n x) but more efficient.

If n < 0 it is the empty list [].

val take_n : int -> 'a list -> 'a list

take_n n l returns the n first elements of l.

If n < 0 it is the empty list []. If n > List.length l it is the list l in its entirety.

val rev_take_n : int -> 'a list -> 'a list

rev_take_n n l is List.rev (take_n n l) but more efficient.

val drop_n : int -> 'a list -> 'a list

drop_n n l returns the suffix of l after the first n elements.

If n < 0 it is the list l in its entirety. If n > List.length l it is the empty list [].

val split_n : int -> 'a list -> 'a list * 'a list

split_n n l is (take_n n l, drop_n n l) but more efficient.

val rev_split_n : int -> 'a list -> 'a list * 'a list

rev_split_n n l is (rev_take_n n l, drop_n n l) but more efficient.

val all_equal : ('a -> 'a -> bool) -> 'a list -> bool

all_equal cmp l checks if all elements of l are identical according to cmp.

If l is the empty list it is true.