<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On May 20, 2016, at 6:56 PM, Brent Royal-Gordon &lt;<a href="mailto:brent@architechies.com" class="">brent@architechies.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div class=""><blockquote type="cite" class="">Austin, what is your thought on switching to `any` rather than `Any` since it does not behave like a user-defined generic type? &nbsp;The convention is for types to be uppercase and keywords to be lowercase. &nbsp;This falls more into the category of a keyword and has its own behavior distinct from the behavior of all generic types. &nbsp;Making it stand out syntactically will help to make that clear.<br class=""></blockquote><br class="">You didn't ask me, but I'll weigh in: I'm not a fan.<br class=""></div></div></blockquote><div><br class=""></div><div>Sorry, I asked Austin because he is heading up the proposal. &nbsp;Didn’t meant to leave anyone out. &nbsp;Thanks for providing feedback!</div><br class=""><blockquote type="cite" class=""><div class=""><div class=""><br class="">* I think `Any` (without parameters) should be uppercase, and I don't think we should have both `Any` and `any&lt;&gt;` or `any`. Death to the typealias!<br class=""></div></div></blockquote><div><br class=""></div><div>Why do you think this? &nbsp;`any&lt;&gt;` (or `Any&lt;&gt;`) is replacing `protocol&lt;&gt;`. &nbsp;`protocol` is a keyword, so following the convention you shared it should be all lowercase. &nbsp;Aside from that, it <b class="">behaves</b>&nbsp;differently than a user-defined type (which would be uppercase).</div><br class=""><blockquote type="cite" class=""><div class=""><div class="">* If type-erasing structs like `AnySequence` are eventually subsumed by this syntax, I would prefer they be called `Any&lt;Sequence&gt;` instead of `any&lt;Sequence&gt;`.</div></div></blockquote><div><br class=""></div>Are you arguing this because they are types? &nbsp;They are currently structs. &nbsp;If they were subsumed by this proposal they most definitely would not be structs. &nbsp;If it’s just syntax you’re concerned with, we could add a typealias:<div><br class=""></div><div>typealias AnySequence&lt;T&gt; = any&lt;Sequence where .Iterator.Element == T&gt;</div><div><br class=""></div><div>I haven’t evaluated AnySequence relative to the existential this typealias would produce. &nbsp;If the visible interface is compatible there would be a strong argument for introducing this typealias. &nbsp;The argument for lowercase wouldn’t apply to the typealias.</div><br class=""><blockquote type="cite" class=""><div class=""><div class="">* In the `willSet` vs. `willset` thread, I proposed a rule that keywords which fit into a particular syntactic slot should be capitalized like normal members of that slot. For instance, if `dynamicType` is a pseudo-property, it should be capitalized like a property. Since `Any&lt;&gt;` fits in the syntactic slot of a type, it should be capitalized like a type.<br class=""></div></div></blockquote><div><br class=""></div><div>Any has some overlap with types, but it <i class="">cannot</i>&nbsp;be used everywhere a type can. &nbsp;This is precisely why it should be lowercase. &nbsp;I don’t believe it falls under that exemption in your proposal. &nbsp;I believe it’s a good exemption when the keyword is indistinguishable to users from a normal member. &nbsp;I don’t believe it’s a good exemption when the behavior is “special” in some way.</div><div><br class=""></div><div>-Matthew</div><br class=""><blockquote type="cite" class=""><div class=""><div class=""><br class="">-- <br class="">Brent Royal-Gordon<br class="">Architechies<br class=""><br class=""></div></div></blockquote></div><br class=""></body></html>