package caqti-lwt

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
type ('a, 'err) t = unit -> ('a, 'err) node Lwt.t

A stream, represented as a lazy chain of Cons-nodes terminating in a Nil or an Error.

and ('a, 'err) node =
  1. | Nil
    (*

    The node of an empty stream

    *)
  2. | Error of 'err
    (*

    A node of a permanently failed stream.

    *)
  3. | Cons of 'a * ('a, 'err) t
    (*

    A node holding the next element and continuation of a stream.

    *)
val fold : f:('a -> 'state -> 'state) -> ('a, 'err) t -> 'state -> ('state, 'err) Stdlib.result Lwt.t

fold ~f stream acc consumes the remainder elements e1, ..., eN of stream and returns Ok (acc |> f e1 |> ... |> f eN) if no error occurred

val fold_s : f:('a -> 'state -> ('state, 'err) Stdlib.result Lwt.t) -> ('a, 'clog) t -> 'state -> ('state, [> `Congested of 'clog ] as 'err) Stdlib.result Lwt.t

fold_s ~f stream acc consumes the remainder of stream, passing each element in order to f along with the latest accumulation starting at acc, and returning the final accumulation if successful. An error result may be due to either the stream provider or the callback, as distinguished with the `Congested constructor.

val iter_s : f:('a -> (unit, 'err) Stdlib.result Lwt.t) -> ('a, 'clog) t -> (unit, [> `Congested of 'clog ] as 'err) Stdlib.result Lwt.t

iter_s ~f stream consumes the remainder of stream, passing each element in order to f. An error result may be due to either the steram provider or the callback, as distinguished with the `Congested constructor.

val to_rev_list : ('a, 'err) t -> ('a list, 'err) Stdlib.result Lwt.t

to_rev_list stream consumes the remainder of stream, returning a list of its element in reverse order of production.

val to_list : ('a, 'err) t -> ('a list, 'err) Stdlib.result Lwt.t

to_list stream consumes the remainder of stream, returning a list of its element in order of production.

val of_list : 'a list -> ('a, 'err) t

of_list xs is a non-failing finite stream (re)producing the elements xs in order of occurrence.