private function describeProcedure(Procedure $procedure, OutputInterface $output, $depth = 0)
    {
        $output->writeln(sprintf('%sProcedure <info>%s</info>', str_repeat(' ', $depth), $procedure->getName()));

        $this->describeComponents($procedure->getSources(), 'SOURCES', $output, $depth);
        $this->describeComponents($procedure->getWorkers(), 'WORKERS', $output, $depth);
        $this->describeComponents($procedure->getTargets(), 'TARGETS', $output, $depth);
        $this->describeChildProcedures($procedure->getChildren(), $output, $depth);

        $output->write("\n");
    }