<html><head></head><body>There is great feedback going on here. I'd like to consider a few things here:<div><br></div><div><ul><li>What if we name the whole thing `E<font face="UICTFontTextStyleBody"><span style="-webkit-text-size-adjust: auto; background-color: rgba(255, 255, 255, 0);">xistential<>` to sort out all confusion? This would allow `typealias Any = Existential<>`.</span></font></li><li><font face="UICTFontTextStyleBody"><span style="-webkit-text-size-adjust: auto; background-color: rgba(255, 255, 255, 0);">Should `protocol A: Any<class>` replace `protocol A: class`? Or at least deprecate it. </span></font></li><li><font face="UICTFontTextStyleBody"><span style="-webkit-text-size-adjust: auto; background-color: rgba(255, 255, 255, 0);">Do we need `typealias AnyClass = Any<class>` or do we want to use any class requirement existential directly? If second, we will need to allow direct existential usage on protocols (right now we only can use typealiases as a worksround).</span></font></li></ul><div><div> <br><div class="bloop_sign"><div style="font-family:helvetica,arial;font-size:13px">-- <br>Adrian Zubarev<br>Sent with Airmail</div></div> <p class="gmail_quote" style="color:#000;">Am 25. Mai 2016 um 23:26:25, Jan E. Schotsman via swift-evolution (<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>) schrieb:</p> <blockquote type="cite" class="gmail_quote"><span><div><div></div><div>Maybe we should adopt a Swift specific definition of existential, like<br><br>"An existential type is a type derived from Any with constraints of <br>the kinds listed below:"<br>...<br>...<br>...<br><br>For example, the 5 kinds of constraint proposed by Austin Zheng.<br>Not very academic, but might save some discussion.<br><br>That would include the existing Protocol as type (no associated type <br>or Self requirements).<br>Also Any<ClassName> which equals the class (which hides type <br>information through automatic upcasting of subclass instances).<br><br>A narrower definition might require protocols to be involved somehow <br>and the resulting type must be new (not equivalent to a class or <br>struct or enum).<br><br>_______________________________________________<br>swift-evolution mailing list<br>swift-evolution@swift.org<br>https://lists.swift.org/mailman/listinfo/swift-evolution<br></div></div></span></blockquote>
</div></div></div></body></html>