Why is `Expr` mutable?