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