public function update(Expression $value, Expression $name, array $arguments) { if ($this->value === $value && $this->name === $name && $this->arguments === $arguments) { return $this; } return new self($value, $name, $arguments); }