sig
  type phantom
  type 'a t = ('a, Pipe.Reader.phantom) Pipe.pipe
  val invariant : 'a Pipe.Reader.t -> unit
  val sexp_of_t :
    ('a -> Sexplib.Sexp.t) -> 'a Pipe.Reader.t -> Sexplib.Sexp.t
end