<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 26.05.2016 um 22:44 schrieb Austin Zheng via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>>:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">(inline)<br class=""><div class="gmail_extra"><br class=""><div class="gmail_quote">On Thu, May 26, 2016 at 12:22 PM, David Hart <span dir="ltr" class=""><<a href="mailto:david@hartbit.com" target="_blank" class="">david@hartbit.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class="">Hi Austin,<div class=""><br class=""></div><div class="">I never had te occasion to say thanks for the work you have put in this proposal, so thanks! I’m really looking forward to be able to have some form of it accepted and implemented in Swift.</div></div></blockquote><div class=""><br class=""></div><div class="">Thank you! I just hope a proposal like this one ends up being good enough that it means less work for the core team, not more...</div><div class=""> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><div class=""><br class=""></div><div class="">Here are a few comments:</div><div class=""><br class=""></div><div class="">1) Why would <span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Menlo,Courier,monospace;background-color:rgba(0,0,0,0.0392157)" class="">Any<></span> and <span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Menlo,Courier,monospace;background-color:rgba(0,0,0,0.0392157)" class="">Any<NSView></span> be illegal? What error messages would they generate? Why not make them simply synonymous to <span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Menlo,Courier,monospace;background-color:rgba(0,0,0,0.0392157)" class="">Any</span>, and <span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Menlo,Courier,monospace;background-color:rgba(0,0,0,0.0392157)" class="">NSView</span>, the same way <span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Menlo,Courier,monospace;background-color:rgba(0,0,0,0.0392157)" class="">protocol<></span> currently behaves?</div></div></blockquote><div class=""><br class=""></div><div class="">"Any<>" being illegal is a syntactic battle that is being fought over in a different thread; I'm not personally invested one way or another. (We might not even adopt "Any" syntax specifically; Joe Groff has ideas for a different syntax that doesn't use the brackets.)</div><div class=""><br class=""></div><div class="">"Any<NSView>" is an existential, and "NSView" isn't. Existentials' metatypes are different from the metatypes of concrete types, and the ways they can be used with generics is different as well. My opinion is that Any<...> signifies an existential, and allowing the use of "Any<SomeClass>" as a concrete type would just confuse people even more.</div></div></div></div></div></blockquote><div><br class=""></div><div><br class=""></div><div>This is something where I still have a problem understanding what an existential is in the Swift sense. In the "normal“ sense (as defined in Wikipedia or Haskell) NSView cannot be an existential because it has no unbound associated types. It cannot be just made an existential either. How would that work?</div><div><br class=""></div><div>So, what is the meaning of `Any<NSView>` being an existential? How is that type different from the type `NSView`?</div><div><br class=""></div><div>-Thorsten</div><div><br class=""></div></div></body></html>