<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="">Am 18.05.2016 um 23:17 schrieb Austin Zheng via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt;:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><div class="gmail_extra"><div class="gmail_quote"><div class="">The order does<span class="Apple-converted-space">&nbsp;</span><b class="">not</b>&nbsp;affect the semantic meaning of the existential. There is a section in the proposal on how existentials are conceptually 'reduced' from whatever form they take when the programmer types them in, please read it. I am not proposing a macro system. The compiler does not do textual replacement in order to flatten nested existential definitions.</div><div class=""><br class=""></div><div class="">This is also why it makes no sense to have a generic "Any&lt;T, U&gt;", because such a type is identical to "Any&lt;U, T&gt;", which is not true for any other generic type or aggregate type in Swift.</div></div></div></div></div></blockquote><br class=""></div><div>Shouldn’t that be a reason to use `any&lt;&gt;` (using a keyword `any`) instead of `Any&lt;&gt;`? Because `Any&lt;&gt;` would just look like/be a generic type with all normal expectations, e.g. `Any&lt;T, U&gt;` would *not* be equal to `Any&lt;U, T&gt;` which is different behavior from `protocol&lt;&gt;`, as I can write&nbsp;</div><div><span style="font-family: Menlo; font-size: 13px; font-variant-ligatures: no-common-ligatures; color: rgb(133, 153, 1);" class=""><br class=""></span></div><div><span style="font-family: Menlo; font-size: 13px; font-variant-ligatures: no-common-ligatures; color: rgb(133, 153, 1);" class="">func</span><span style="color: rgb(131, 148, 150); font-family: Menlo; font-size: 13px; font-variant-ligatures: no-common-ligatures;" class=""> foo(p: </span><span style="font-family: Menlo; font-size: 13px; font-variant-ligatures: no-common-ligatures; color: rgb(133, 153, 1);" class="">protocol</span><span style="color: rgb(131, 148, 150); font-family: Menlo; font-size: 13px; font-variant-ligatures: no-common-ligatures;" class="">&lt;</span><span style="font-family: Menlo; font-size: 13px; font-variant-ligatures: no-common-ligatures; color: rgb(181, 137, 1);" class="">A</span><span style="color: rgb(131, 148, 150); font-family: Menlo; font-size: 13px; font-variant-ligatures: no-common-ligatures;" class="">, </span><span style="font-family: Menlo; font-size: 13px; font-variant-ligatures: no-common-ligatures; color: rgb(181, 137, 1);" class="">B</span><span style="color: rgb(131, 148, 150); font-family: Menlo; font-size: 13px; font-variant-ligatures: no-common-ligatures;" class="">&gt;) -&gt; </span><span style="font-family: Menlo; font-size: 13px; font-variant-ligatures: no-common-ligatures; color: rgb(133, 153, 1);" class="">protocol</span><span style="color: rgb(131, 148, 150); font-family: Menlo; font-size: 13px; font-variant-ligatures: no-common-ligatures;" class="">&lt;</span><span style="font-family: Menlo; font-size: 13px; font-variant-ligatures: no-common-ligatures; color: rgb(181, 137, 1);" class="">B</span><span style="color: rgb(131, 148, 150); font-family: Menlo; font-size: 13px; font-variant-ligatures: no-common-ligatures;" class="">, </span><span style="font-family: Menlo; font-size: 13px; font-variant-ligatures: no-common-ligatures; color: rgb(181, 137, 1);" class="">A</span><span style="color: rgb(131, 148, 150); font-family: Menlo; font-size: 13px; font-variant-ligatures: no-common-ligatures;" class="">&gt; {</span></div><div style="margin: 0px; font-size: 13px; line-height: normal; font-family: Menlo; color: rgb(131, 148, 150);" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures: no-common-ligatures; color: #859901" class="">return</span><span style="font-variant-ligatures: no-common-ligatures" class=""> p</span></div><div style="margin: 0px; font-size: 13px; line-height: normal; font-family: Menlo; color: rgb(131, 148, 150);" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">}</span></div><div style="margin: 0px; font-size: 13px; line-height: normal; font-family: Menlo; color: rgb(131, 148, 150);" class=""><br class=""></div><div style="margin: 0px; font-size: 13px; line-height: normal; font-family: Menlo; color: rgb(131, 148, 150);" class=""><span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;" class="">-Thorsten</span></div></body></html>