sig
  type 'a t
  val make : unit -> 'Ivar.t
  val read : 'Ivar.t -> 'Event.event
  val put : 'Ivar.t -> '-> unit Event.event
end