pub fn neg(a: impl IntoExpr) -> Result<Expr>
-a: a constant is negated in place when the result is a value of its type, anything else is MakeConst(a.ty(), 0) - a (C++ neg).
-a
MakeConst(a.ty(), 0) - a
neg