`sig
type t
val invariant : Nano_mutex.t -> unit
val create : unit -> Nano_mutex.t
val equal : Nano_mutex.t -> Nano_mutex.t -> bool
val current_thread_has_lock : Nano_mutex.t -> bool
val lock : Nano_mutex.t -> unit Core_kernel.Std.Or_error.t
val lock_exn : Nano_mutex.t -> unit
val try_lock :
Nano_mutex.t -> [ `Acquired | `Not_acquired ] Core_kernel.Std.Or_error.t
val try_lock_exn : Nano_mutex.t -> [ `Acquired | `Not_acquired ]
val unlock : Nano_mutex.t -> unit Core_kernel.Std.Or_error.t
val unlock_exn : Nano_mutex.t -> unit
val critical_section : Nano_mutex.t -> f:(unit -> 'a) -> 'a
val sexp_of_t : Nano_mutex.t -> Sexplib.Sexp.t
end`