<div dir="ltr">On Sun, Dec 10, 2017 at 7:59 AM, Brent Royal-Gordon <span dir="ltr">&lt;<a href="mailto:brent@architechies.com" target="_blank">brent@architechies.com</a>&gt;</span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word;line-break:after-white-space"><span class=""><div><blockquote type="cite"><div>On Dec 9, 2017, at 10:32 AM, Xiaodi Wu via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt; wrote:</div><br class="m_5186932910845617333Apple-interchange-newline"><div><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important">On Sat, Dec 9, 2017 at 11:20 Steven Brunwasser &lt;</span><a href="mailto:sbrunwasser@gmail.com" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" target="_blank">sbrunwasser@gmail.com</a><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important">&gt; wrote:</span><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><div class="gmail_quote" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="auto"><div>Just wanted to give my 2¢</div><div><br></div><div>¢</div><div>I don’t like empty protocols—they feel like an abuse of the feature.</div></div></blockquote><div dir="auto"><br></div><div dir="auto">As has been discussed here before, protocols aren’t about bags of syntax but rather about semantics. Empty protocols are explicitly a demonstration of this settled principle and are very much consistent with the direction of Swift.</div></div></div></blockquote></div><div><br></div></span><div>I also think it should be an attribute.</div><div><br></div><div>The last time I said this, I pointed out that this was a protocol which:</div><div><br></div><div>1. Has no formal members,</div><div>2. But imposes informal requirements enforced by the compiler,</div><div>3. Permits and uses arbitrary overloads, and</div><div>4. Cannot be usefully used in a generic context or as a type constraint,</div><div><br></div><div>None of which are true of ordinary protocols. Since then, we have added:</div><div><br></div><div>5. Can only be conformed to in the main declaration.</div><div><br></div><div>This is looking less like a protocol by the day. The square-peg grooves in the round hole are getting deeper and more splintery with every revision.</div></div></blockquote><div><br></div><div>Synthesized conformances cannot be declared in extensions either. If you&#39;d like, you could consider that this protocol is one for which the compiler synthesizes an infinite number of members.</div><div><br></div><div>I would like to see (4) addressed: a complete implementation should allow me to call any member on a type T in a generic context where T : DynamicMemberLookupProtocol, which I kind of assumed that this proposal would eventually permit.</div></div></div></div>