sig
type 'a t = 'a Tail.Stream.t
val create : ('a Tail.t -> unit) -> 'a t
type 'a next = 'a Async_stream.next = Nil | Cons of 'a * 'a t
val next : 'a t -> 'a next Deferred.t
val first_exn : 'a t -> 'a Deferred.t
val of_list : 'a list -> 'a t
val to_list : 'a t -> 'a list Deferred.t
val of_fun : (unit -> 'a Deferred.t) -> 'a t
val copy_to_tail : 'a t -> 'a Tail.t -> unit Deferred.t
val append : 'a t -> 'a t -> 'a t
val concat : 'a t t -> 'a t
val available_now : 'a t -> 'a list * 'a t
val filter_deprecated : 'a t -> f:('a -> bool) -> 'a t
val filter_map_deprecated : 'a t -> f:('a -> 'b option) -> 'b t
val fold' :
'a t -> init:'b -> f:('b -> 'a -> 'b Deferred.t) -> 'b Deferred.t
val fold : 'a t -> init:'b -> f:('b -> 'a -> 'b) -> 'b Deferred.t
val iter' : 'a t -> f:('a -> unit Deferred.t) -> unit Deferred.t
val closed : 'a t -> unit Deferred.t
val iter : 'a t -> f:('a -> unit) -> unit
val take_until : 'a t -> unit Deferred.t -> 'a t
val iter_durably' : 'a t -> f:('a -> unit Deferred.t) -> unit Deferred.t
val iter_durably : 'a t -> f:('a -> unit) -> unit
val iter_durably_report_end : 'a t -> f:('a -> unit) -> unit Deferred.t
val length : 'a t -> int Deferred.t
val map' : 'a t -> f:('a -> 'b Deferred.t) -> 'b t
val map : 'a t -> f:('a -> 'b) -> 'b t
val first_n : 'a t -> int -> 'a t
val unfold : 'b -> f:('b -> ('a * 'b) option Deferred.t) -> 'a t
val split :
?stop:unit Deferred.t ->
?f:('a -> [ `Continue | `Found of 'b ]) ->
'a t ->
'a t *
[ `End_of_stream | `Found of 'b * 'a t | `Stopped of 'a t ] Deferred.t
val find :
'a t ->
f:('a -> bool) -> [ `End_of_stream | `Found of 'a * 'a t ] Deferred.t
val ungroup : 'a list t -> 'a t
val interleave : 'a t t -> 'a t
val sexp_of_t : ('a -> Sexplib.Sexp.t) -> 'a t -> Sexplib.Sexp.t
end