Wow, 29 seconds.  I don't think it's possible for `exp` to change here, even if semantic did rewrite the expression with a different type (is this really possible?) `exp` would still refer to the original.