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