Operations over reals and over integers modulo 2^64 are very different operations.
And they share the same operation symbols.
IMO, "+", "-" and "*" need programmer's decisionmaking a lot more.
Currently, there is no assurance that the symbol "+" in Lua program will invoke the addition user implied and not the other addition.
I can't come up with a good idea how to solve this.
Non-7-bit-ASCII symbols for operations is a bad idea.
Using "[+]", "(*)" or other complex symbols for integer operations is a bit awkward.
Using bit64 library will make integer operations boring to use.
As for now, Lua 5.3 users must paranoically check that all operations do preserve math.type of values.
Type can be accidentally changed from float to integer by math.floor() or by assigning a numeric literal without ".0" suffix. Type can be accidentally changed from integer to float by using "/" or "^".
Such mistakes have a good chance to stay unrevealed.