Observed behavior: The result of multiplying two 32 bit integers is a 32 bit integer, even if there is an overflow.
Proposed behavior: Rather than overflow, an alternative numeric type will be used to store the result when possible.
Consider addition and subtraction overflow as well. For numeric addition and subtraction, adding two 32 bit ints will produce a 32 bit int. Currently division is implemented to always return a double.
Also consider for accumulators like $sum.