sig type t type ('a, 'b) reagent = ('a, 'b) R.t val create : int -> t val get_count : t -> (unit, int) reagent val await : t -> (unit, unit) reagent val count_down : t -> (unit, unit) reagent end