Right now, almost all arithmetic operators are represented into DFG as Arith<Op> and their return is always number. With the introduction of BigInt, it starts to be false. The idea is to follow the same approach of ArithAdd and ArithNegate and have Value<Op> for each operator.
This has landed a long while ago