We've had this discussion often when implementing Ethereum 2, a multi-implementation blockchain(Go, Java, Nim, Rust, Typescript), securing over $27B of assets at the moment.
* <https://github.com/ethereum/consensus-specs/issues/626> (The integer debate) * <https://github.com/ethereum/consensus-specs/issues/1029> (Spec needed to be modified to catch the several underflows we ran into) * <https://github.com/ethereum/consensus-specs/pull/279/files> (Example underflows to fix: `a <= b - c` needs to be changed to `a + c <= b`)