Simplified code for overflow handling: looking at the code i see now that it is actually safer to always check for overflow by default. most architectures have 2s complement anyway, so the optimization only happens on some obscure architecture where ints do not wrap (also for floats--they do not wrap as well). i'll simply have ints check for overflow *always* and provide a CP for special types that the user can specialize for optimization.