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