private function repackageTransformationCall(TransformationCall $call, array $newArguments)
    {
        $transformation = $call->getCallee();

        if (!$transformation instanceof Transformation) {
            throw new UnsupportedCallException(
                sprintf(
                    'Something is wrong in callee associated with `%s` call.',
                    get_class($call)
                ), $call
            );
        }

        return new TransformationCall(
            $call->getEnvironment(),
            $call->getDefinition(),
            $transformation,
            $newArguments
        );
    }