sig   type t   val create : unit -> BatRMutex.t   val lock : BatRMutex.t -> unit   val try_lock : BatRMutex.t -> bool   val unlock : BatRMutex.t -> unit   val synchronize : ?lock:BatRMutex.t -> ('a -> 'b) -> 'a -> 'b   val make : unit -> BatConcurrent.lock end