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