sig
  type task_name = string
  type process_type = Processing.task_name
  type process_types = Processing.process_type list list
  type process_data
  type process_datas
  type process = {
    input_type : Processing.process_type list list;
    output_type : Processing.process_type;
    code :
      Processing.process_types * Processing.process_datas ->
      Processing.process_type * Processing.process_data;
  }
  type task
  type options = (Arg.key * Arg.spec * Arg.doc) list * Arg.anon_fun
  val register :
    Processing.task_name ->
    Processing.options ->
    Processing.task_name list list -> ('-> 'b) -> (unit -> bool) -> unit
  val is_task_traced : Processing.task_name -> bool
  val get_registered_tasks : unit -> Processing.task_name list
  val execute :
    default_start:Processing.task_name ->
    default_end:Processing.task_name -> usage:string -> unit
  val debug : string -> unit
end