sig
val create : ?message:string -> string -> bool
val create_exn : ?message:string -> string -> unit
val blocking_create : ?message:string -> string -> unit
val unlock : string -> unit
val critical_section : ?message:string -> string -> f:(unit -> 'a) -> 'a
end