Critic notes about Swift Range types jungle

There's a lot ground (for me) to cover, thanks for the links provided above by @Lantua and others. The more I'm looking at them the more different axis of range types split apart. Float/BigNum/Int – and ranges made of them – three very different things. Unbound vs Bound ranges – very different things. As was questioned by @Drew_Crawford1 it might worth to merge open and closed range (at least for the integer subtypes). My intuition (which might not reflect that of a typical swift user) fails on Swift ranges as I came from an assumption that range is a very primitive type (like nothing more than a pair of numbers, possibly with a few more bits of information), and assumptions that things like "reverse" just trivially exchange the numbers (while in fact "reverse" does something very dramatic). The unbounded ranges mean different things in different contexts ("for in" which doesn't stop at UInt8.max vs "string[start...]" that stops at string end). Thanks for the references to ranges in other languages, worth looking into that.

My 2 cents on this particular note:

You are making (already made) a frozen type that's very hard to change in the future. Even if we don't see a pressing need to introduce left open ranges today (other than for the sake of symmetry / consistency) such need might become pressing in the future – but by then the type is "too frozen" to be able supporting it.