sig
  val create : ?message:string -> string -> bool
  val create_exn : ?message:string -> string -> unit
  val blocking_create : ?message:string -> string -> unit
  val is_locked : string -> bool
  module Nfs :
    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
end