1. The never type is useful for expressing divergent computations and error‑free results
- “The never type seems very useful in various languages to either signal that a branch can never happen … or to mark that a function will never return a value …” – epolanski
- “My favourite never type ability is when you need to conform to a trait that returns Result but your specific implementation can never produce an error. Return Result<T, !> and the compiler knows that callers never have to check the error case …” – cipherjim
2. Implementing traits for ! runs into problems with associated types and coherence
- “The Default trait provides a function that actually constructs the type in question. But here the ! type can never be constructed, so the only way to implement Default would be to have it panic, loop infinitely, or otherwise fail at runtime.” – tux3
- “What would <! as Iterator>::Item be? … if you havetrait Foo: Iteratorandtrait Bar: Iteratorhow could!` implement both of them? It would simply make the language incoherent.” – dlubarov / SkiFire13
3. Naming and readability of the never type (! vs a named alias)
- “Is it obvious to rust developers that '!' would be the never type? … I feel like a longer more human‑understandable name would've been a good decision here.” – LatticeAnimal
- “Because we call it 'the never type' in casual conversation, the most natural thing to do would be to just have a type alias called Never that we could encourage people to use instead.” – kibwen
- “Yeah I think just calling it 'Never' is much clearer, this isn't something that needs a dedicated single character, and ! is less readable imo.” – p1necone
- “It really baffles me why a symbol like ! was spent on this, which could be more useful for a more commonly used feature.” – amomchilov