sig
  type 'a t
  val make : unit -> 'Ccell.Ivar.t
  val init_make : '-> 'Ccell.Ivar.t
  val read : 'Ccell.Ivar.t -> 'Ccell.Event.event
  val poll : 'Ccell.Ivar.t -> 'a option
  exception Full
  val put : 'Ccell.Ivar.t -> '-> unit
end