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