sig
  type t
  val create : unit -> Extlib.Concurrent.BaseLock.t
  val lock : Extlib.Concurrent.BaseLock.t -> unit
  val unlock : Extlib.Concurrent.BaseLock.t -> unit
  val try_lock : Extlib.Concurrent.BaseLock.t -> bool
end