<div dir="ltr">I have to agree with Never. None is for Optional.none, and it looks like Void in function signature.<div>I would argue that Never <span style="font-size:12.8px">could not be mistaken as a synonym for Void.</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">protocol Nothing {}</span><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">is exactly how Any could be defined, so it's an opposite entity.</span></div><div>We could define that as a protocol that nothing can confirm to, but approach with empty enum seems more natural to me, because it does not require any extra work from the compiler.</div><div><br></div><div>- Anton</div></div><div class="gmail_extra"><br><div class="gmail_quote">2016-06-05 23:54 GMT+03:00 T.J. Usiyan <span dir="ltr"><<a href="mailto:griotspeak@gmail.com" target="_blank">griotspeak@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">*please* let us not repeat the mostly avoidable challenging-to-explain-to-newcomers-and-vetarans-alike situation that we had in Obj-C with regard to `nil`.<div><br></div><div>nil</div><div>Nil</div><div>NULL</div><div>NSNull</div><div>nullptr</div>kCFNull<div>__DARWIN_NULL</div><div><br></div><div>are the representations of 'don't have' that come to mind. </div><div><br></div><div><br></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jun 5, 2016 at 2:39 PM, Charlie Monroe via swift-evolution <span dir="ltr"><<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">While None is probably the best way to describe the opposite of Any, it would be often mistaken for .None (i.e. Optional) by newcomers to the language.<br>
<br>
I'd personally prefer calling it "Nil" (capital N), which really means "nonexistent". The same way ObjC had "nil" for "id" and "Nil" for Class. Possibly, to avoid confusion with nil, calling it Null? Though that might get confused with NSNull, once the NS prefix gets dropped.<br>
<br>
Or "Nothing" as in Scala.<br>
<div><div><br>
> On Jun 5, 2016, at 8:26 PM, Антон Жилин via swift-evolution <<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>> wrote:<br>
><br>
> The following names were suggested: NoReturn, Bottom, None, Never.<br>
> I would pick None, because it looks like opposite to Any and fits nicely in generic types.<br>
><br>
> I would prefer the type to be simple, and be implemented as a case-less enum (not a bottom value, as in Haskell).<br>
><br>
> None should be a usual enum, with no compiler magic except that functions returning None are equivalent to current @noreturn.<br>
><br>
> Example 1.<br>
> let x: None?<br>
> // ...<br>
> let y = x!<br>
><br>
> It will trap in runtime not because we discover scary bottom thing, as in Haskell, but because x had value Optional.none at that moment and we asserted otherwise.<br>
> We could prove that it is always true in this case, but compiler must be stupid about this.<br>
><br>
> Example 2.<br>
> Compiler should allow including None in structures. Error will show up in constructor, when we will not be able to initialize the field.<br>
><br>
> Example 3.<br>
> None in an enum case makes that case never appear in values of such a type. But compiler can not know about that.<br>
><br>
> - Anton<br>
</div></div><div><div>> _______________________________________________<br>
> swift-evolution mailing list<br>
> <a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br>
> <a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
<br>
_______________________________________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>