type phantom
type 'a t
= ('a, phantom) pipe
include sig ... end
val sexp_of_t : ('a ‑> Base.Sexp.t) ‑> 'a t ‑> Base.Sexp.t
val invariant : _ t ‑> unit