<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">(Trying to move the conversation back to this thread to un-hijack Adrian's thread.)</div><div class=""><br class=""></div><div class="">In terms of Any<> vs any<>, I don't have any strong feelings and I think there are good arguments on both sides. I'm going to leave the proposal as Any<> but put a section in the 'Alternatives' discussing Any<> vs any<>, so that if it does go up for review the core team can review arguments and maybe choose one they like.</div><div class=""><br class=""></div><div class="">Any<> pros:</div><div class="">- The convention is to capitalize types. 'Any<A, B>' is immediately apparent as a type, and looks like a type when used in places where types would be used (like function signatures)</div><div class="">- Having 'Any<>' allows us to keep the well-established 'Any' without having to typealias to 'any' or 'any<>' forms</div><div class="">- any is a keyword, but an argument can be made that keywords that fit into a particular syntactic slot should be capitalized like normal members of that slot. Any<> fits into the slot of types, so it should be named like a type</div><div class="">- In the future, AnySequence and friends can be replaced with, e.g. Any<Sequence>. This increases discoverability of existential features, like a future "Any<Sequence where .Element == Int>". A number of developers have mentioned that they suspect protocol<> is rarely used, although GitHub's search makes it impossible to quantify.</div><div class=""><br class=""></div><div class="">any<> pros:</div><div class="">- any<>'s lower case 'a' distinguishes it from other generic types that use similar syntax, such as "Array<Int>". Perhaps developers, especially those new to Swift, will be confused as to why "Any<A, B>" isn't a generic type, but "Dictionary<A, B>" is. New developers aside, it may be jarring to have to mentally 'context switch' between Any<A, B> as an existential, and AnythingButAny<A, B> as a generic type.</div><div class="">- any's lower case 'a' makes it clear to users it's not a 'normal' type, but rather a construction that can be used as a type in some cases, and can't be used everywhere a concrete type can.</div><div class="">- 'any' isn't a specific type - it's a kind of type (an existential), and this spelling fits better with the other 'kind' names: 'class', 'struct', 'enum', 'protocol'</div><div class="">- any is a keyword, and keywords are lower case. Perhaps consistency in this matter is more important.</div><div class=""><br class=""></div><div class="">Any other thoughts? I will submit an amendment tonight if people are okay with this.</div><div class=""><br class=""></div><div class="">Austin</div><div class=""><br class=""></div><br class=""><div><blockquote type="cite" class=""><div class="">On May 18, 2016, at 10:35 PM, Austin Zheng <<a href="mailto:austinzheng@gmail.com" class="">austinzheng@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Hello all,<div class=""><br class=""></div><div class="">Swift 3.0 focuses on making breaking changes that prepare the way for features to be introduced in future releases. In that spirit, I would like to solicit feedback on a very simple proposal: renaming 'protocol<>' to 'Any<>', as described in the 'Completing Generics' manifesto.</div><div class=""><br class=""></div><div class="">The proposal can be found here: <a href="https://github.com/austinzheng/swift-evolution/blob/az-protocol-to-any/proposals/XXXX-any-as-existential.md" class="">https://github.com/austinzheng/swift-evolution/blob/az-protocol-to-any/proposals/XXXX-any-as-existential.md</a></div><div class=""><br class=""></div><div class="">Best,</div><div class="">Austin</div></div>
</div></blockquote></div><br class=""></body></html>