final public function chain(PipeChainInterface $chain): PipeChainInterface
    {
        if ( $this->next instanceof PipeChainInterface ) {
            $this->next->chain($chain);
        }
        else {
            $this->next = $chain;
        }

        return $this;
    }