<br><div class="gmail_quote"><div dir="auto">On Wed, Sep 13, 2017 at 00:26 Gwendal Roué &lt;<a href="mailto:gwendal.roue@gmail.com">gwendal.roue@gmail.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><br><div><blockquote type="cite"><div>Le 13 sept. 2017 à 06:28, Xiaodi Wu &lt;<a href="mailto:xiaodi.wu@gmail.com" target="_blank">xiaodi.wu@gmail.com</a>&gt; a écrit :</div><br class="m_-1577495204587626200Apple-interchange-newline"><div><div dir="auto" 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"><br class="m_-1577495204587626200Apple-interchange-newline">On Tue, Sep 12, 2017 at 23:26 Gwendal Roué &lt;<a href="mailto:gwendal.roue@gmail.com" target="_blank">gwendal.roue@gmail.com</a>&gt; wrote:<br></div><blockquote 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;margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><br>&gt; Le 13 sept. 2017 à 04:05, Xiaodi Wu &lt;<a href="mailto:xiaodi.wu@gmail.com" target="_blank">xiaodi.wu@gmail.com</a>&gt; a écrit :<br>&gt;<br>&gt; On Tue, Sep 12, 2017 at 2:30 PM, Gwendal Roué &lt;<a href="mailto:gwendal.roue@gmail.com" target="_blank">gwendal.roue@gmail.com</a>&gt; wrote:<br>&gt; &gt;&gt; In none of those cases, the compiler emits any warning. It&#39;s thus easy to forget or miss the problem, and uneasy to fix it (you&#39;ll need a runtime failure to spot it, or a thorough code review).<br>&gt; &gt;&gt;<br>&gt; &gt;&gt; I hope you agree with this last sentence. This unbalance between the easiness of the mistake and the easiness of the fix should ring a bell to language designers.<br>&gt; &gt;<br>&gt; &gt; Suppose instead this were about a protocol named Fooable and a requirement called foo() that has a default implementation. Everything you just talked about would apply equally. Am I to understand that you are opposed to default implementations in general? If so, then that’s got nothing to do with synthesized Equatable conformance. If not, then you’ll have to justify why.<br>&gt;<br>&gt; Sounds like a good argument, until one realises that if a protocol does not provide a default implementations for a method, it may be because a default implementations is impossible to provide (the most usual case), or because it would be unwise to do so.<br>&gt;<br>&gt; And indeed, the topic currently discussed is not if we should remove or not default implementations. Instead, the question is: is it wise or not to provide an *implicit* default Equatable/Hashable/XXX implementation?<br>&gt;<br>&gt; Right, _that_ is the question. It was asked during review for the proposal, and the agreed upon answer is _yes_.<br><br>Wrong. This whole thread is about *explicit* synthetic behavior;. If an agreed proposal has to be invalidated in the way, _so be it_.<br><br>Gwendal</blockquote><div dir="auto" 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"><br></div><div dir="auto" 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">Explicit (e.g., &quot;AutoEquatable&quot;) and implicit synthetic behavior were both considered during the proposal which approved the implicit behavior. This question has been asked and answered.</div></div></blockquote></div><br></div><div style="word-wrap:break-word"><div>We&#39;re in a new thread now, which may drive the core team into reconsidering a previous decision.</div><div><br></div><div>It happens. You may remember a funny debate about SE-0110. In the end a question that had been asked and answered got a whole new answer.</div><div><br></div><div>We&#39;re all here to improve the language. That&#39;s why I sometimes participate in this mailing list.</div></div></blockquote><div dir="auto"><br></div><div dir="auto">After implementation, sometimes new insights arise from user experience that weren&#39;t originally anticipated. This can prompt reconsideration. Again, this is not the case here; decisions made are made.</div><div dir="auto"><br></div><div dir="auto"><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div></div></div></blockquote></div>