sig
  exception Error_initializing_worker_machine of string * exn
  val init : ?cluster:Import.Cluster.t -> unit -> Core.Std.Pid.t
  val create_process :
    ?where:[ `F of unit -> string | `Local | `On of string ] ->
    unit ->
    (Async.Std.Unix.Inet_addr.t * int) Core.Std.Or_error.t
    Async.Std.Deferred.t
  val shutdown : unit -> unit Async.Std.Deferred.t
  val round_robin : [> `F of unit -> string ]
  val random : [> `F of unit -> string ]
  val random_in : string list -> [> `F of unit -> string ]
end