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