Negating a Rational64 such as Rational64::new(i64::MIN, 3) will overflow, and without CheckedNeg it's annoying to catch it. (I think this shouldn't be a breaking change? Although I confess that I don't understand all the semver subtleties around traits.)