Uint256 mulChecked(Uint256 other) { if (isZero || other.isZero) return Uint256.zero; final r = this * other; if (r ~/ other != this) throw IntegerError.overflow; return r; }