sig
  type 'a t = {
    put : ('a * bool Join.chan) Join.chan;
    close : unit -> unit;
  }
end