sig type t type ('a, 'b) reagent = ('a, 'b) R.t val create : int -> t val get : t -> (unit, int) reagent val inc : t -> (unit, int) reagent val dec : t -> (unit, int) reagent val try_dec : t -> (unit, int option) reagent end