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