Module Bare_structs.Seq_es

include Bare_sigs.Seq_es.S with type ('a, 'e) seq_e_t := ( 'a, 'e ) Seq_e.t and type 'a seq_s_t := 'a Seq_s.t
type (+'a, 'e) node =
| Nil
| Cons of 'a * ( 'a, 'e ) t

This is similar to Seq.S.t but the suspended node is a promised result.

Similarly to Seq_e, sequences of this module can be interrupted by an error. In this case, traversal has fully applied to the successful prefix before the returned promise evaluates to Error _.

and ('a, 'e) t = unit -> ( ( 'a, 'e ) node, 'e ) Stdlib.result Lwt.t
val empty : ( 'a, 'e ) t
val nil : ( 'a, 'e ) node
val cons : 'a -> ( 'a, 'e ) t -> ( 'a, 'e ) t
val cons_s : 'a Lwt.t -> ( 'a, 'e ) t -> ( 'a, 'e ) t
val cons_e : ( 'a, 'e ) Stdlib.result -> ( 'a, 'e ) t -> ( 'a, 'e ) t
val cons_es : ( 'a, 'e ) Stdlib.result Lwt.t -> ( 'a, 'e ) t -> ( 'a, 'e ) t
val append : ( 'a, 'e ) t -> ( 'a, 'e ) t -> ( 'a, 'e ) t
val return : 'a -> ( 'a, 'e ) t
val return_e : ( 'a, 'e ) Stdlib.result -> ( 'a, 'e ) t
val return_s : 'a Lwt.t -> ( 'a, 'e ) t
val return_es : ( 'a, 'e ) Stdlib.result Lwt.t -> ( 'a, 'e ) t
val interrupted : 'e -> ( 'a, 'e ) t
val interrupted_s : 'e Lwt.t -> ( 'a, 'e ) t
val first : ( 'a, 'e ) t -> ( 'a, 'e ) Stdlib.result option Lwt.t
val fold_left : ( 'a -> 'b -> 'a ) -> 'a -> ( 'b, 'e ) t -> ( 'a, 'e ) Stdlib.result Lwt.t
val fold_left_e : ( 'a -> 'b -> ( 'a, 'e ) Stdlib.result ) -> 'a -> ( 'b, 'e ) t -> ( 'a, 'e ) Stdlib.result Lwt.t
val fold_left_e_discriminated : ( 'a -> 'b -> ( 'a, 'f ) Stdlib.result ) -> 'a -> ( 'b, 'e ) t -> ( 'a, ( 'e, 'f ) Stdlib.Either.t ) Stdlib.result Lwt.t
val fold_left_s : ( 'a -> 'b -> 'a Lwt.t ) -> 'a -> ( 'b, 'e ) t -> ( 'a, 'e ) Stdlib.result Lwt.t
val fold_left_es : ( 'a -> 'b -> ( 'a, 'e ) Stdlib.result Lwt.t ) -> 'a -> ( 'b, 'e ) t -> ( 'a, 'e ) Stdlib.result Lwt.t
val fold_left_es_discriminated : ( 'a -> 'b -> ( 'a, 'f ) Stdlib.result Lwt.t ) -> 'a -> ( 'b, 'e ) t -> ( 'a, ( 'e, 'f ) Stdlib.Either.t ) Stdlib.result Lwt.t
val iter : ( 'a -> unit ) -> ( 'a, 'e ) t -> ( unit, 'e ) Stdlib.result Lwt.t
val iter_e : ( 'a -> ( unit, 'e ) Stdlib.result ) -> ( 'a, 'e ) t -> ( unit, 'e ) Stdlib.result Lwt.t
val iter_e_discriminated : ( 'a -> ( unit, 'f ) Stdlib.result ) -> ( 'a, 'e ) t -> ( unit, ( 'e, 'f ) Stdlib.Either.t ) Stdlib.result Lwt.t
val iter_s : ( 'a -> unit Lwt.t ) -> ( 'a, 'e ) t -> ( unit, 'e ) Stdlib.result Lwt.t
val iter_es : ( 'a -> ( unit, 'e ) Stdlib.result Lwt.t ) -> ( 'a, 'e ) t -> ( unit, 'e ) Stdlib.result Lwt.t
val iter_es_discriminated : ( 'a -> ( unit, 'f ) Stdlib.result Lwt.t ) -> ( 'a, 'e ) t -> ( unit, ( 'e, 'f ) Stdlib.Either.t ) Stdlib.result Lwt.t
val map : ( 'a -> 'b ) -> ( 'a, 'e ) t -> ( 'b, 'e ) t
val map_e : ( 'a -> ( 'b, 'e ) Stdlib.result ) -> ( 'a, 'e ) t -> ( 'b, 'e ) t
val map_s : ( 'a -> 'b Lwt.t ) -> ( 'a, 'e ) t -> ( 'b, 'e ) t
val map_es : ( 'a -> ( 'b, 'e ) Stdlib.result Lwt.t ) -> ( 'a, 'e ) t -> ( 'b, 'e ) t
val map_error : ( 'e -> 'f ) -> ( 'a, 'e ) t -> ( 'a, 'f ) t
val map_error_s : ( 'e -> 'f Lwt.t ) -> ( 'a, 'e ) t -> ( 'a, 'f ) t
val filter : ( 'a -> bool ) -> ( 'a, 'e ) t -> ( 'a, 'e ) t
val filter_e : ( 'a -> ( bool, 'e ) Stdlib.result ) -> ( 'a, 'e ) t -> ( 'a, 'e ) t
val filter_s : ( 'a -> bool Lwt.t ) -> ( 'a, 'e ) t -> ( 'a, 'e ) t
val filter_es : ( 'a -> ( bool, 'e ) Stdlib.result Lwt.t ) -> ( 'a, 'e ) t -> ( 'a, 'e ) t
val filter_map : ( 'a -> 'b option ) -> ( 'a, 'e ) t -> ( 'b, 'e ) t
val filter_map_e : ( 'a -> ( 'b option, 'e ) Stdlib.result ) -> ( 'a, 'e ) t -> ( 'b, 'e ) t
val filter_map_s : ( 'a -> 'b option Lwt.t ) -> ( 'a, 'e ) t -> ( 'b, 'e ) t
val filter_map_es : ( 'a -> ( 'b option, 'e ) Stdlib.result Lwt.t ) -> ( 'a, 'e ) t -> ( 'b, 'e ) t
val unfold : ( 'b -> ('a * 'b) option ) -> 'b -> ( 'a, 'e ) t
val unfold_s : ( 'b -> ('a * 'b) option Lwt.t ) -> 'b -> ( 'a, 'e ) t
val unfold_e : ( 'b -> ( ('a * 'b) option, 'e ) Stdlib.result ) -> 'b -> ( 'a, 'e ) t
val unfold_es : ( 'b -> ( ('a * 'b) option, 'e ) Stdlib.result Lwt.t ) -> 'b -> ( 'a, 'e ) t
val of_seq : 'a Stdlib.Seq.t -> ( 'a, 'e ) t
val of_seq_s : 'a Lwt.t Stdlib.Seq.t -> ( 'a, 'e ) t
val of_seqs : 'a Seq_s.t -> ( 'a, 'e ) t
val of_seq_e : ( 'a, 'e ) Stdlib.result Stdlib.Seq.t -> ( 'a, 'e ) t
val of_seqe : ( 'a, 'e ) Seq_e.t -> ( 'a, 'e ) t
val of_seq_es : ( 'a, 'e ) Stdlib.result Lwt.t Stdlib.Seq.t -> ( 'a, 'e ) t