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