Bare_structs.SeqSourceinclude Bare_sigs.Seq.Sinclude 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 : ('acc -> 'a -> 'acc) -> 'acc -> 'a t -> 'accval iteri : (int -> 'a -> unit) -> 'a t -> unitval fold_lefti : ('acc -> int -> 'a -> 'acc) -> 'acc -> 'a t -> 'accval for_all : ('a -> bool) -> 'a t -> boolval exists : ('a -> bool) -> 'a t -> boolval find : ('a -> bool) -> 'a t -> 'a optionval find_index : ('a -> bool) -> 'a t -> int optionval find_map : ('a -> 'b option) -> 'a t -> 'b optionval find_mapi : (int -> 'a -> 'b option) -> 'a t -> 'b optionval empty : 'a tval return : 'a -> 'a tval init : int -> (int -> 'a) -> '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 tfirst s is None if s is empty, it is Some x where x is the first element of s otherwise.
Note that first forces the first element of the sequence, which can have side-effects or be computationally expensive. Consider, e.g., the case where s = filter (fun …) s': first s can force multiple of the values from s'.
val fold_left_e :
('a -> 'b -> ('a, 'trace) Stdlib.result) ->
'a ->
'b t ->
('a, 'trace) Stdlib.resultSimilar to fold_left but wraps the traversal in result. The traversal is interrupted if one of the step returns an Error _.
Similar to fold_left but wraps the traversing in Lwt. Each step of the traversal is started after the previous one has resolved. The traversal is interrupted if one of the promise is rejected.
val fold_left_es :
('a -> 'b -> ('a, 'trace) Stdlib.result Lwt.t) ->
'a ->
'b t ->
('a, 'trace) Stdlib.result Lwt.tSimilar to fold_left but wraps the traversing in result Lwt.t. Each step of the traversal is started after the previous one resolved. The traversal is interrupted if one of the step is rejected or is fulfilled with Error _.
Similar to iter but wraps the iteration in result. The iteration is interrupted if one of the step returns an Error _.
Similar to iter but wraps the iteration in Lwt. Each step of the iteration is started after the previous one resolved. The iteration is interrupted if one of the promise is rejected.
val iter_es :
('a -> (unit, 'trace) Stdlib.result Lwt.t) ->
'a t ->
(unit, 'trace) Stdlib.result Lwt.tSimilar to iter but wraps the iteration in result Lwt.t. Each step of the iteration is started after the previous one resolved. The iteration is interrupted if one of the promise is rejected of fulfilled with an Error _.
val 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.Similar 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.