<div><br><div class="gmail_quote"><div dir="auto">On Tue, Sep 12, 2017 at 23: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"><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"><br></div><div dir="auto">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 dir="auto"><br></div></div></div>