Bare_structs.Seq_e
include Bare_sigs.Seq_e.S
type ('a, 'e) t = unit -> (('a, 'e) node, 'e) Stdlib.result
include Seqes.Sigs.SEQMON2ALL
with type ('a, 'e) mon := ('a, 'e) Stdlib.result
with type ('a, 'e) t := ('a, 'e) t
val iter : ('a -> unit) -> ('a, 'e) t -> (unit, 'e) Stdlib.result
val fold_left : ('a -> 'b -> 'a) -> 'a -> ('b, 'e) t -> ('a, 'e) Stdlib.result
val iteri : (int -> 'a -> unit) -> ('a, 'e) t -> (unit, 'e) Stdlib.result
val fold_lefti :
('b -> int -> 'a -> 'b) ->
'b ->
('a, 'e) t ->
('b, 'e) Stdlib.result
val for_all : ('a -> bool) -> ('a, 'e) t -> (bool, 'e) Stdlib.result
val exists : ('a -> bool) -> ('a, 'e) t -> (bool, 'e) Stdlib.result
val find : ('a -> bool) -> ('a, 'e) t -> ('a option, 'e) Stdlib.result
val find_map : ('a -> 'b option) -> ('a, 'e) t -> ('b option, 'e) Stdlib.result
val init : int -> (int -> 'a) -> ('a, 'e) t
val unfold : ('b -> ('a * 'b) option) -> 'b -> ('a, 'e) t
val forever : (unit -> 'a) -> ('a, 'e) t
val iterate : ('a -> 'a) -> 'a -> ('a, 'e) t
val is_empty : ('a, 'e) t -> (bool, 'e) Stdlib.result
val length : ('a, 'e) t -> (int, 'e) Stdlib.result
val empty : ('a, 'e) t
val return : 'a -> ('a, 'e) t
val repeat : 'a -> ('a, 'e) t
val of_dispenser : (unit -> ('a option, 'e) Stdlib.result) -> ('a, 'e) t
val to_dispenser : ('a, 'e) t -> unit -> ('a option, 'e) Stdlib.result
val ints : int -> (int, 'e) t
val of_seq : 'a Stdlib.Seq.t -> ('a, 'e) t
val return_e : ('a, 'e) Stdlib.result -> ('a, 'e) t
return_e (Ok x)
is a whole sequence containing the single element x
. return_e (Error e)
is a sequence immediately interrupted by the error e
.
val interrupted : 'e -> ('a, 'e) t
interrupted e
is a sequence immediately interrupted by the error e
.
map_error f seq
is a sequence feq
.
seq
is a whole sequence, then feq
is the same whole sequence.seq
is an interrupted sequence, then feq
is a sequence interrupted by Error (f e)
where the elements of the successful prefix are the elements of the successful prefix of seq
.val iter_p : ('a -> unit Lwt.t) -> ('a, 'e) t -> (unit, 'e) Stdlib.result Lwt.t
iter_p f seq
is a promise p
.
seq
is a whole sequence, then p
resolves to Ok ()
once all the promises created by f
on the elements of seq
have resolved.seq
is interrupted by Error e
, then p
resolves to Error e
once all the promises created by f
on the elements of the successful prefix of seq
have resolved.Note that the behaviour for interrupted sequences is in line with the best-effort semantic of Lwtreslib.
cons_e (Ok x) s
is the sequence containing x
followed by s
. It is a whole sequence if s
is.
cons_e (Error e) s
is a sequence immediately interrupted by e
.
val of_seq_catch : 'a Stdlib.Seq.t -> ('a, exn) t
of_seq_catch s
is a sequence with the same elements as s
which is interrupted when forcing an element of the sequence raises an exception.
val of_seq_once : when_forced_twice:'e -> 'a Stdlib.Seq.t -> ('a, 'e) t
of_seq_once ~when_forced_twice s
is a sequence with the same elements as s
which is interrupted when an element of the sequence is forced twice.
In other words, it is equivalent to
map_error
(function Seq.Forced_twice -> when_forced_twice | e -> raise e)
(of_seq_catch (Seq.once s))
val of_seq_e : ('a, 'e) Stdlib.result Stdlib.Seq.t -> ('a, 'e) t