Bare_structs.Seqinclude Bare_sigs.Seq.SCommon interface with Stdlib
Note that some functions (namely init, take, and drop) are shadowed with exception-less versions.
Note that once is not shadowed. Be careful when using once: the resulting sequence is ephemeral and using in a non-ephemeral way raises an exception. As a safer alternative, you can use Seq_e.of_seq_once which gives you a result-based (exception-less) ephemeral sequence.
include module type of Stdlib.Seq
with type 'a t = 'a Stdlib.Seq.t
and type 'a node = 'a Stdlib.Seq.nodeval is_empty : 'a t -> boolval length : 'a t -> intval iter : ('a -> unit) -> 'a t -> unitval fold_left : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'aval iteri : (int -> 'a -> unit) -> 'a t -> unitval fold_lefti : ('b -> int -> 'a -> 'b) -> 'b -> 'a t -> 'bval for_all : ('a -> bool) -> 'a t -> boolval exists : ('a -> bool) -> 'a t -> boolval find : ('a -> bool) -> 'a t -> 'a optionval find_map : ('a -> 'b option) -> 'a t -> 'b optionval empty : 'a tval return : 'a -> 'a tval unfold : ('b -> ('a * 'b) option) -> 'b -> 'a tval repeat : 'a -> 'a tval forever : (unit -> 'a) -> 'a tval iterate : ('a -> 'a) -> 'a -> 'a tval of_dispenser : (unit -> 'a option) -> 'a tval to_dispenser : 'a t -> unit -> 'a optionval ints : int -> int tval init :
when_negative_length:'err ->
int ->
(int -> 'a) ->
('a t, 'err) Stdlib.resultval iter_ep :
('a -> (unit, 'trace) Stdlib.result Lwt.t) ->
'a t ->
(unit, 'trace list) Stdlib.result Lwt.tSimilar to iter but wraps the iteration in result Lwt.t. All the steps of the iteration are started concurrently. The promise iter_ep resolves once all the promises of the traversal resolve. At this point it either:
Error _ if at least one of the promises is, otherwiseOk () if all the promises are.val iter_p : ('a -> unit Lwt.t) -> 'a t -> unit Lwt.tSimilar to iter but wraps the iteration in Lwt. All the steps of the iteration are started concurrently. The promise iter_p f s is resolved only once all the promises of the iteration are. At this point it is either fulfilled if all promises are, or rejected if at least one of them is.
val iteri_ep :
(int -> 'a -> (unit, 'trace) Stdlib.result Lwt.t) ->
'a t ->
(unit, 'trace list) Stdlib.result Lwt.tSimilar to iteri but wraps the iteration in result Lwt.t. All the steps of the iteration are started concurrently. The promise iteri_ep resolves once all the promises of the traversal resolve. At this point it either:
Error _ if at least one of the promises is, otherwiseOk () if all the promises are.val iteri_p : (int -> 'a -> unit Lwt.t) -> 'a t -> unit Lwt.tSimilar to iteri but wraps the iteration in Lwt. All the steps of the iteration are started concurrently. The promise iter_p f s is resolved only once all the promises of the iteration are. At this point it is either fulfilled if all promises are, or rejected if at least one of them is.
val iter2_ep :
('a -> 'b -> (unit, 'trace) Stdlib.result Lwt.t) ->
'a t ->
'b t ->
(unit, 'trace list) Stdlib.result Lwt.tSimilar to iter2 but wraps the iteration in result Lwt.t. All the steps of the iteration are started concurrently. The promise iter2_ep f s1 s2 resolves once all the promises of the traversal resolve. At this point it is either:
Error _ if at least one of the promises is,Ok () if all of the promises are.Note that similarly to Stdlib.Seq.iter2 this function iterates on the common-length prefix of the two sequences. As a result, the iteration can be successful even if the two sequences are of different lengths.
Similar to iter2 but wraps the iteration in Lwt. All the steps of the iteration are started concurrently. The promise iter2_p f s1 s2 resolves once all the promises of the traversal resolve. At this point it is either:
() if all of the promises are.Note that similarly to Stdlib.Seq.iter2 this function iterates on the common-length prefix of the two sequences. As a result, the iteration can be successful even if the two sequences are of different lengths.