sig
  val synchronize : ?lock:Mutex.t -> ('-> 'b) -> '-> 'b
  val make : unit -> BatConcurrent.lock
  module DebugMutex :
    sig
      type t
      val create : unit -> BatMutex.DebugMutex.t
      val lock : BatMutex.DebugMutex.t -> unit
      val try_lock : BatMutex.DebugMutex.t -> bool
      val unlock : BatMutex.DebugMutex.t -> unit
      val synchronize : ?lock:BatMutex.DebugMutex.t -> ('-> 'b) -> '-> 'b
      val make : unit -> BatConcurrent.lock
    end
end