sig type ('a, 'b) reagent = ('a, 'b) R.t type t val create : unit -> t val acq : t -> (unit, unit) reagent val rel : t -> (unit, bool) reagent val try_acq : t -> (unit, bool) reagent end