sig
  type task
  val task : ('a, 'b) Procord_task.worker_task -> Procord_worker.task
  val run :
    ?spec:(Arg.key * Arg.spec * Arg.doc) list ->
    ?usage:Arg.usage_msg ->
    ?anon:Arg.anon_fun -> Procord_worker.task list -> unit
  val get_input_file : unit -> string
  val set_input_file : string -> unit
  val get_output_file : unit -> string
  val set_output_file : string -> unit
  val get_hostname : unit -> string
  val set_hostname : string -> unit
  val get_port : unit -> int
  val set_port : int -> unit
  val get_max_simultaneous_tasks : unit -> int option
  val set_max_simultaneous_tasks : int option -> unit
  val get_reuse_address : unit -> bool
  val set_reuse_address : bool -> unit
  val get_dont_fork : unit -> bool
  val set_dont_fork : bool -> unit
  val run_custom :
    ?input:Unix.file_descr ->
    ?output:Unix.file_descr -> Procord_worker.task list -> unit
  val run_listen :
    ?continue:(unit -> bool) ->
    ?accept:(Unix.sockaddr -> bool) ->
    ?max_simultaneous_tasks:int ->
    ?reuse_address:bool ->
    ?dont_fork:bool ->
    hostname:string -> port:int -> Procord_worker.task list -> unit
  val redirect_standard_formatters : unit -> unit
  val redirect_formatter :
    Format.formatter -> Procord_protocol.print_destination -> unit
  val make_redirected_formatter :
    Procord_protocol.print_destination -> Format.formatter
end