sig
  val create :
    ?message:string ->
    ?close_on_exec:bool ->
    ?unlink_on_exit:bool -> string -> bool Import.Deferred.t
  val create_exn :
    ?message:string ->
    ?close_on_exec:bool ->
    ?unlink_on_exit:bool -> string -> unit Import.Deferred.t
  val waiting_create :
    ?abort:unit Import.Deferred.t ->
    ?message:string ->
    ?close_on_exec:bool ->
    ?unlink_on_exit:bool -> string -> unit Import.Deferred.t
  val is_locked : string -> bool Import.Deferred.t
  module Nfs :
    sig
      val create : ?message:string -> string -> bool Import.Deferred.t
      val create_exn : ?message:string -> string -> unit Import.Deferred.t
      val waiting_create :
        ?abort:unit Import.Deferred.t ->
        ?message:string -> string -> unit Import.Deferred.t
      val unlock_exn : string -> unit Import.Deferred.t
      val critical_section :
        ?message:string ->
        string ->
        abort:unit Import.Deferred.t ->
        f:(unit -> 'Import.Deferred.t) -> 'Import.Deferred.t
      val get_hostname_and_pid :
        string -> (string * Core.Std.Pid.t) option Import.Deferred.t
      val get_message : string -> string option Import.Deferred.t
    end
end