sig
  type ('a, 'b) t = { collect : 'Join.chan; wait : unit -> 'b; }
  val create :
    ('-> '-> 'b) -> '-> int -> ('a, 'b) JoinCount.Collector.t
end