The trait bounds are the notice given, or in logic theory, the set inclusion notation or "such that"s. (You could argue that implicit bounds like Sized happen without notice, in Rust.) Since you found the set of natural numbers version intuitive, I tried to show that it is the same thing. In a universe of real numbers, that quantifier over the natural numbers is still completely valid. And in a universe of types, a quantifier over the set of types which meet the stated bounds is just as valid. In some of the links below, this is called "the range of qualification". Only being able to make statements where the range is the entire universe is pretty limiting, as you pointed out yourself earlier in this thread. So given a universe of types, we specify subsets by setting trait bounds.
I think the real disconnect, though, is that "universal" and "existential" in these discussions are referring to the quantifier operators from formal logic, and not their informal english meanings. If you really want to dig into why that is relevant, you could read Niko's blogposts on Chalk:
Even then though, I should point out that some familiarity on the topic is assumed. I wish I had a good reference to give here (anyone else?), but depending on how much formal logic you've been exposed to, if you want to follow closely along I recommend:
- A review of propositional logic
- Knowing what a Horn clause is
- Knowing the aforementioned quantifiers
(Really do wish I had a better recommendation here than Wikipedia.)
Or you could skip all that and just read the blog posts with formal logic in the back of your mind to get the gist -- the real point is, these formal logic systems, including the universal and existential operators, are how the type system actually works, in a mathematically rigorous sense. From that starting point, intuition or interpretation of the words in their english sense doesn't really enter into it.