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