sig type t val create : unit -> Mutex.t val lock : Mutex.t -> unit val try_lock : Mutex.t -> bool val unlock : Mutex.t -> unit val protect : Mutex.t -> (unit -> 'a) -> 'a end