sig
  type t = Agnostic_mutex.t
  val create : unit -> t
  val equal : t -> t -> bool
  val lock : t -> unit
  val try_lock : t -> bool
  val unlock : t -> unit
  val critical_section : t -> f:(unit -> 'a) -> 'a
  val ounit_tests : unit -> OUnit.test
end