- widening nodes added for arithmetic promotion - a op= b is equivalent to: a = (typeof a)((max(typeof a, typeof b)a op (max(typeof a, typeof b))b)) the only cast made explicit is (max(typeof a, typeof b))b), the other two are left implicit (the first cast is obvious, there is no good place in the AST to represent the second)