Just to make sure I've dotted the i's and crossed the t's, this is not what's happening when we hang in VRP when compiling a-textio.
We convert the incoming object from natural___XDLU_0___2147483647 into its base type, perform the addition in the base type, then convert back to XDLU_0_2147483647. The above is exactly what I thought everybody agrees is and should be happening, so I'm confused by your "this is not what's happening" comment above.