<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="">I like this, and had considered proposing something similar.<div class=""><br class=""></div><div class="">Points:</div><div class="">I would have chose to leave protocol to mean the dynamically dispatch-able type declaration, as that is what it indicates in Objective-C. Your proposal would cause every Objective-C protocol to now be considered an interface in Swift terms.</div><div class=""><br class=""></div><div class="">Some discussion on this list makes me think that you might instead have a modifier for declaring statically dispatched, existential protocols - e.g. “existential protocol SequenceType { … }”</div><div class=""><br class=""></div><div class="">Also, note not all usage of Self need be disallowed in dynamically dispatch-able types today:</div><div class=""><br class=""></div><div class="">protocol Test {&nbsp;<br class="">&nbsp;&nbsp; &nbsp;&nbsp;func foo() -&gt; Self&nbsp;<br class="">}&nbsp;&nbsp; &nbsp;<br class=""><br class=""></div><div class="">var t:Test? // legal, I assume on purpose due to the covariance of the return type</div><div class=""><br class=""></div><div class="">-DW</div><div class=""><br class=""></div><div class=""><div><blockquote type="cite" class=""><div class="">On Jan 3, 2016, at 7:48 AM, Антон Жилин via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div style="font-size:12.8px" class="">Introduction of interfaces will clean up the current blend of static and dynamic protocols, and solve at least three popular issues.</div><div style="font-size:12.8px" class="">Please see:</div><div style="font-size:12.8px" class=""><a href="https://github.com/Anton3/swift-evolution/blob/master/proposals/0000-introducing-interfaces.md" class="">https://github.com/Anton3/swift-evolution/blob/master/proposals/0000-introducing-interfaces.md</a></div></div>
<img src="https://u2002410.ct.sendgrid.net/wf/open?upn=nE9rxSXA5G4kxsTVkgv43vFcOQoCM-2FU-2BigXPSqPoICKyzKCcW-2FsvG-2B6P4c6LYXHE7RPoQ6-2BxT-2BYF7fa-2F4JpXbAPZnITk9QRZVIxYTZANEs7mYAPJEpH3ODol8s6SkAbwRyQiOgLXDdk9tCWAS4yeCPS0eOGRiyG-2Fw4pKee043rtL5Dnc6NWYAeLvUG6gj5Sil2DdmknTJNdewShwmLZywwJe-2BQX6mJPtXfXHyA9yfss-3D" alt="" width="1" height="1" border="0" style="height:1px !important;width:1px !important;border-width:0 !important;margin-top:0 !important;margin-bottom:0 !important;margin-right:0 !important;margin-left:0 !important;padding-top:0 !important;padding-bottom:0 !important;padding-right:0 !important;padding-left:0 !important;" class="">
_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-evolution<br class=""></div></blockquote></div><br class=""></div></body></html>