Module Tail

module Tail: Tail

type 'a t 
val create : unit -> 'a t
create () returns a new tail.
val extend : 'a t -> 'a -> unit
extend t v extends the stream, and will raise an exception if t has been closed.
val close_exn : 'a t -> unit
close_exn t closes t. Subsequent calls to close_exn or extend will raise an exception.
val close_if_open : 'a t -> unit
close_if_open t closes t, if it's not already closed. If t is already closed, then this is a no-op.
val is_closed : 'a t -> bool
is_closed t returns true iff the stream t is closed.
module Stream: sig .. end
val collect : 'a t -> 'a Stream.t
collect t returns the stream starting at the current position of the tail, i.e. the stream consisting of all subsequent extends.
val sexp_of_t : ('a -> Sexplib.Sexp.t) -> 'a t -> Sexplib.Sexp.t

create () returns a new tail.

extend t v extends the stream, and will raise an exception if t has been closed.

close_exn t closes t. Subsequent calls to close_exn or extend will raise an exception.

close_if_open t closes t, if it's not already closed. If t is already closed, then this is a no-op.

is_closed t returns true iff the stream t is closed.

collect t returns the stream starting at the current position of the tail, i.e. the stream consisting of all subsequent extends.