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