BatMutex

`sig
module Mutex :
sig
type t = Mutex.t
val create : unit -> BatMutex.Mutex.t
val lock : BatMutex.Mutex.t -> unit
val try_lock : BatMutex.Mutex.t -> bool
val unlock : BatMutex.Mutex.t -> unit
val synchronize : ?lock:BatMutex.Mutex.t -> ('a -> 'b) -> 'a -> 'b
val make : unit -> BatConcurrent.lock
end
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 -> ('a -> 'b) -> 'a -> 'b
val make : unit -> BatConcurrent.lock
end
end`