> On Jun 5, 2016, at 8:39 PM, Charlie Monroe via swift-evolution
> <[email protected]> wrote:
>
> 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.
>
> 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.
>
> Or "Nothing" as in Scala.
This is a language that has put protocol centerstage. It stands to reason
express something as essential using a protocol.
protocol Nothing {}
seems more than rational
>
>> On Jun 5, 2016, at 8:26 PM, Антон Жилин via swift-evolution
>> <[email protected]> wrote:
>>
>> The following names were suggested: NoReturn, Bottom, None, Never.
>> I would pick None, because it looks like opposite to Any and fits nicely in
>> generic types.
>>
>> I would prefer the type to be simple, and be implemented as a case-less enum
>> (not a bottom value, as in Haskell).
>>
>> None should be a usual enum, with no compiler magic except that functions
>> returning None are equivalent to current @noreturn.
>>
>> Example 1.
>> let x: None?
>> // ...
>> let y = x!
>>
>> 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.
>> We could prove that it is always true in this case, but compiler must be
>> stupid about this.
>>
>> Example 2.
>> Compiler should allow including None in structures. Error will show up in
>> constructor, when we will not be able to initialize the field.
>>
>> Example 3.
>> None in an enum case makes that case never appear in values of such a type.
>> But compiler can not know about that.
>>
>> - Anton
>> _______________________________________________
>> swift-evolution mailing list
>> [email protected]
>> https://lists.swift.org/mailman/listinfo/swift-evolution
>
> _______________________________________________
> swift-evolution mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution