> It's inexplicable to me why a language wouldn't allow these loss-less operations to be implicit.
Because in some sense implicit behaviour is bad behaviour. It makes it unclear what the code does.
Because in some sense implicit behaviour is bad behaviour. It makes it unclear what the code does.
A 128-bit integer (if you are adding a 32-bit integer and a 64-bit integer, the smallest power-of-2-bits representation guaranteed not to have an overflow is 128-bits, so its the safest result. Though, I'd agree, not the most likely thing most programmers would intend.)