sig
  val create :
    ?message:string ->
    ?close_on_exec:bool -> ?unlink_on_exit:bool -> string -> bool
  val create_exn :
    ?message:string ->
    ?close_on_exec:bool -> ?unlink_on_exit:bool -> string -> unit
  val blocking_create :
    ?message:string ->
    ?close_on_exec:bool -> ?unlink_on_exit:bool -> 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 critical_section :
        ?message:string -> string -> f:(unit -> 'a) -> 'a
      val get_hostname_and_pid : string -> (string * Pid.t) option
    end
end