sig
  type 'a t = 'a Async.Std.Pipe.Writer.t list Pervasives.ref
  val create : unit -> 'a MorePipes.PubSub.t
  val pub : 'a MorePipes.PubSub.t -> 'a -> unit Async.Std.Deferred.t
  val sub : 'a MorePipes.PubSub.t -> 'a Async.Std.Pipe.Reader.t
  val close : 'a MorePipes.PubSub.t -> unit
end