<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div><br><br>Sent from my iPad</div><div><br>On Jan 3, 2016, at 10:53 AM, David Waite via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br><br></div><blockquote type="cite"><div><meta http-equiv="Content-Type" content="text/html charset=utf-8">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></blockquote><div><br></div><div>The problem with *requiring* distinct syntax for protocols that are intended to be used as existential a is that it is a stated goal to expand the kinds of protocols which can be used as existentials. &nbsp;In other words, the set of protocols that can be used as existentials is a moving target that is likely to grow substantially in the future.</div><div><br></div><div>I would be comfortable with some kind of optional assertion that a protocol can be used as an existential but probably not comfortable with anything more than that.</div><br><blockquote type="cite"><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=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""></div></blockquote></div><br class=""></div>
<img src="https://u2002410.ct.sendgrid.net/wf/open?upn=eLFMrKDT8iBxZ-2Fbnk-2BZqvSchNN-2FvYXdceA0T7VxwkAfiQz1-2FZnC21B4w39rJkgKKdM8-2BsrO-2BAQBXD9GJGDJ2RaOtb8HOhZN6m3kn5obKBoWTAaKZh5PYhtumiNxfv0ZC5hz0mDXjbghxNFxvQo6MH-2F9K1rrKYnjz3QoJpLwU-2BPm4b7fXgMNO0Xq8bmmlpQJWpOh107dV4kVrCjAfD1wX-2FZvDyK83NXN6mXTG0oDgSus-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;">

</div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>swift-evolution mailing list</span><br><span><a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a></span><br><span><a href="https://lists.swift.org/mailman/listinfo/swift-evolution">https://lists.swift.org/mailman/listinfo/swift-evolution</a></span><br></div></blockquote></body></html>