It would incur a major compiler overhead. In order to efficiently
generate code, the compiler needs to have available a scalar type which
encompasses the entire range of possible values for all scalar types. If
you wanted to accommodate both signed and unsigned 32-bit values, that
range would be -2147483548..4294967295, and that range can't be contained
in 32 bits.