<div dir="ltr">Thanks for your feedback, everybody!<div><br></div><div>I&#39;ve updated the <a href="https://gist.github.com/allevato/2fd10290bfa84accfbe977d8ac07daad">gist</a> to reflect what seems to be a consensus here:</div><div><br></div><div>* Derived conformances are now opt-in (this makes the recursive case *much* cleaner, and the complexity involved in that section has been completely removed)</div><div>* Classes are supported now as well</div><div><br></div><div>Please take a look at the updated version and let me know if there are any concerns! If folks like it, I&#39;ll prepare a pull request.</div><div><br></div><div><br><div class="gmail_quote"><div dir="ltr">On Fri, May 5, 2017 at 8:16 AM Nevin Brackett-Rozinsky via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, May 5, 2017 at 1:47 AM, Xiaodi Wu via swift-evolution <span dir="ltr">&lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt;</span> wrote:<br></div></div></div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><span class="m_1203078577276602968gmail-">On Fri, May 5, 2017 at 12:41 AM, Brent Royal-Gordon <span dir="ltr">&lt;<a href="mailto:brent@architechies.com" target="_blank">brent@architechies.com</a>&gt;</span> wrote:</span><div class="gmail_extra"><div class="gmail_quote"><span class="m_1203078577276602968gmail-"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word"><div>I would think only final classes could participate in this, since a subclassable class would need to allow subclasses to override equality, and you can&#39;t override a static `==` operator method.</div></div></blockquote><div><br></div></span><div>I work so rarely with classes that I&#39;m embarrassed to have to ask this question: can classes not satisfy Equatable with a `public class func ==`?</div></div></div></div></blockquote></div></div></div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"></div></blockquote><div><br></div><div>Currently:</div><div><br></div><div><div><font face="monospace, monospace">class C: Equatable {</font></div><div><font face="monospace, monospace">    class func == (lhs: C, rhs: C) -&gt; Bool {</font></div><div><font face="monospace, monospace">        return lhs === rhs</font></div><div><font face="monospace, monospace">    }</font></div><div><font face="monospace, monospace">}</font></div></div><div><br></div><div>Yields an error, “Operator &#39;==&#39; declared in non-final class &#39;C&#39; must be &#39;final&#39;”.</div></div></div></div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><br></div><div>Nevin</div></div></div></div>
_______________________________________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
</blockquote></div></div></div>