sig
module Reader : sig type 'a t end
module Writer : sig type 'a t end
val create :
unit -> 'a Async.Std.Pipe.Reader.t * 'a Async.Std.Pipe.Writer.t
val write : 'a Async.Std.Pipe.Writer.t -> 'a -> unit Async.Std.Deferred.t
val read :
'a Async.Std.Pipe.Reader.t -> [ `Eof | `Ok of 'a ] Async.Std.Deferred.t
end