public function addValueToArguments(array $arguments) : array
    {
        // If the caller hasn't explicitly specified where they want the value
        // to be added, we will add it as the first value. Otherwise we will
        // replace all occurrences of PIPED_VALUE with the original value.

        if (! in_array(PIPED_VALUE, $arguments, true)) {
            return array_merge([$this->value], $arguments);
        }

        return array_map(function ($argument) {
            return $argument === PIPED_VALUE ? $this->value : $argument;
        }, $arguments);
    }