operator `=`[T](a: var T, b: T) { #pragma[magic: "GenericAssign"] } operator `+`(a, b: int): int { #pragma[magic: "AddInt64", pure] } operator `+=`(a: var int, b: int) { a = a + b; } fn identity(x: var int): int { x += 1; return x; } var x = 5; identity(x); # identity(38); # If you uncomment this, the compiler errors out!