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