Awesome! Thanks Steve.
This was interesting to see:
// Special case to avoid trapping on .min / -1.
if self == .min && other == -1 { return true }
Nice catch.
I've added a link to your PR in the proposal and I've also simplified the proposed solution section now that we have an implementation to point to. I figured it'd be a bit of pain to keep the docs and implementation details in sync between the two if there are any further changes.
Swift evolution PR is now available here: [Proposal] Add `isEven`, `isOdd`, and `isMultiple(of:)` to BinaryInteger by robmaceachern · Pull Request #891 · apple/swift-evolution · GitHub
Thanks everybody!