Previously, we implemented:
Au * Au -> Au
Au / Au -> Au
Au % Au -> Au
... which are inconsistent. It should be:
Au * Au -> SquaredAu
Au / Au -> i32
Au % Au -> i32
or:
Au * i32 -> Au
Au / i32 -> Au
Au % i32 -> Au
I picked the latter.
Also, the multiplicative identity does not make sense
when multiplication take two different types.