<div><br><div class="gmail_quote"><div dir="auto">On Wed, Sep 13, 2017 at 01:23 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 à 07:35, Xiaodi Wu &lt;<a href="mailto:xiaodi.wu@gmail.com" target="_blank">xiaodi.wu@gmail.com</a>&gt; a écrit :</div><br class="m_-2642026352255595925Apple-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_-2642026352255595925Apple-interchange-newline">On Wed, Sep 13, 2017 at 00: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"><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_-2642026352255595925m_-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_-2642026352255595925m_-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" 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">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></blockquote></div><br></div><div style="word-wrap:break-word"><div>If I take on my free time exposing issues, it&#39;s because I hope that maybe some reader will consider them with proper attention, then maybe agree that there is an issue worth investigating, and then many conclude that a made decision has to be reverted. That&#39;s a multi-step process. And that process starts with a proper read of the issues that have been exposed.</div></div></blockquote><div dir="auto"><br></div><div dir="auto">Keep in mind that by posting to this list, you are also demanding other people spend their free time on the issue. And again, these issues have already been discussed. If a point is made once but doesn&#39;t carry the day, repeating it again and again doesn&#39;t make it more convincing.</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><br></div><div>For reference, here are some issues with implicit synthesis:</div><div><br></div><div>- <a href="https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20170911/039704.html" target="_blank">https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20170911/039704.html</a></div><div>- <a href="https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20170911/039710.html" target="_blank">https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20170911/039710.html</a></div></div><div style="word-wrap:break-word"><div><br></div><div>Gwendal</div></div></blockquote><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><br></div></div></blockquote></div></div>