Make Never the bottom type

I've never used the stdlib's Result type before, so I didn't know that. Still, there's a class of types that could benefit from Never being a true bottom type, even if the stdlib's Result type is not one of them.

Thanks for answer. I'm not an experienced in Type theory, and my questions may be navy. I want to unserstand some aspects of this:

  1. why do we need this sub-type relation? Why is 'func ?? (lhs: T?, rhs: @_autoclosure () throws -> Never) rethrows -> T' is not suitable solution?
  2. Is there some other things except fatalError() function or ternary operator, that get benefit from Never becomes a sub-type?

The general idea is that fatalError() or 'optional ?? fatalError()' expression is not common case. Both of them used rarely, at least in most of general purpose apps.

May be, good examples of real code will make the motivation of this proposal more clear and convincing for non experienced in type system programmers.