guard start <= end else { return -distance(from: end, to: start) }
wouldn't be that hard to do. Is this a remnant of when IndexDistance was selectable? More importantly, was it allowed to be an unsigned integer (or anything else that couldn't be reliably negated)?