sig
type 'a t
val create : unit -> 'a Tail.t
val extend : 'a Tail.t -> 'a -> unit
val close_exn : 'a Tail.t -> unit
val close_if_open : 'a Tail.t -> unit
val is_closed : 'a Tail.t -> bool
module Stream :
sig
type 'a t
type 'a next = Nil | Cons of 'a * 'a Tail.Stream.t
val next : 'a Tail.Stream.t -> 'a Tail.Stream.next Deferred.t
val sexp_of_t :
('a -> Sexplib.Sexp.t) -> 'a Tail.Stream.t -> Sexplib.Sexp.t
end
val collect : 'a Tail.t -> 'a Tail.Stream.t
val sexp_of_t : ('a -> Sexplib.Sexp.t) -> 'a Tail.t -> Sexplib.Sexp.t
end