<div dir="ltr">(No joking)<div><div>Points:<div><br></div><div>1. When nil was added to the language, we could not infer enumeration type:</div><div>if x != Optional.none { ... }</div><div><br></div><div>Now it looks like this:</div><div>if x != .none { ... }</div><div><br></div><div>If at this point we had a proposal to add nil as a replacement for .none, would we accept it?</div><div><br></div><div>2. nil is very generic, it only approximately allows to express the intentions.</div><div>In case of Optional, .none is clearer. In case of JSON processing, .null is clearer. In case of a semantically nullable struct, NilLiteralConvertible usually goes to default constructor.</div><div><br></div><div>3. Too many &quot;empty&quot; things: .none, nil; NSNull, Void, NoReturn types.</div><div><br></div><div>4. There should be a single consistent terminology: no value in Swift equals none.</div><div><br></div><div>- Anton</div></div></div></div>