Module type Seq_es.S
Source The S
signature is similar to Seq.S
except that suspended nodes are wrapped in a result-Lwt.
This allows some additional traversors (map_ep
, etc.) to be applied lazily.
The functions of_seq
and of_seq_*
allow conversion from vanilla sequences.
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 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_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