sig type t = { tick : unit Join.chan; wait : unit -> unit; } val create : int -> JoinCount.Down.t end