<div><br><div class="gmail_quote"><div dir="auto">On Tue, Sep 12, 2017 at 23:26 Gwendal Roué <<a href="mailto:gwendal.roue@gmail.com">gwendal.roue@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
> Le 13 sept. 2017 à 04:05, Xiaodi Wu <<a href="mailto:xiaodi.wu@gmail.com" target="_blank">xiaodi.wu@gmail.com</a>> a écrit :<br>
><br>
> On Tue, Sep 12, 2017 at 2:30 PM, Gwendal Roué <<a href="mailto:gwendal.roue@gmail.com" target="_blank">gwendal.roue@gmail.com</a>> wrote:<br>
> >> In none of those cases, the compiler emits any warning. It's thus easy to forget or miss the problem, and uneasy to fix it (you'll need a runtime failure to spot it, or a thorough code review).<br>
> >><br>
> >> 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>
> ><br>
> > 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>
><br>
> 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>
><br>
> 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>
><br>
> 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., "AutoEquatable") 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>