<div><br><div class="gmail_quote"><div dir="auto">On Sat, Nov 25, 2017 at 06:35 Mike Kluev &lt;<a href="mailto:mike.kluev@gmail.com">mike.kluev@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><div class="gmail_extra">On 25 November 2017 at 03:12, Xiaodi Wu <span>&lt;<a href="mailto:xiaodi.wu@gmail.com" target="_blank">xiaodi.wu@gmail.com</a>&gt;</span> wrote:<br></div></div><div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="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><span class="m_6386377095437579356gmail-">On Fri, Nov 24, 2017 at 9:08 PM, Mike Kluev via swift-evolution <span>&lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt;</span> wrote:<br></span><div class="gmail_extra"><div class="gmail_quote"><span class="m_6386377095437579356gmail-"><blockquote class="gmail_quote" style="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><span>On 24 November 2017 at 23:47, Douglas Gregor <span>&lt;<a href="mailto:dgregor@apple.com" target="_blank">dgregor@apple.com</a>&gt;</span> wrote:<br></span><div class="gmail_extra"><div class="gmail_quote"><span><blockquote class="gmail_quote" style="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;line-break:after-white-space"><div><br></div><div>e.g., making all tuples of Equatable elements Equatable </div><div><br></div></div></blockquote><div><br></div></span><div>that&#39;s already the case.. (all tuples of equatable elements are equatable). no?</div></div></div></div></blockquote><div><br></div></span><div>No, tuples do not conform to any protocols. There are hardcoded implementations of `==` up to some arity in the stdlib to partially mitigate the lack of protocol conformance.</div><div><br></div></div></div></div></blockquote><div><br></div></div></div></div><div><div class="gmail_extra"><div class="gmail_quote">to me as a user the end result is the same...</div><div class="gmail_quote"><div>probably we need a better convincing example of what users may want that doesn&#39;t have a workaround now.</div></div></div></div></blockquote><div dir="auto"><br></div><div dir="auto">The workaround substantially bloats the standard library, and the result is nothing close to the same because your type is still not Equatable. This means that it cannot benefit from any generic algorithms. For example, an array of such tuples cannot be Equatable in turn.</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="gmail_extra"><div class="gmail_quote"><div></div><div></div></div></div></div></blockquote><div dir="auto"><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="gmail_extra"><div class="gmail_quote"><div>speaking of ugliness, the ellipsis on the left of names is quite ugly:<br></div></div></div></div><div><div class="gmail_extra"><div class="gmail_quote"><div><br></div><div>     extension&lt;...Elements : Equatable&gt; (Elements...) : Equatable</div></div></div></div></blockquote><div dir="auto"><br></div><div dir="auto">Seems perfectly fine to me.</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><div class="gmail_extra"><div class="gmail_quote"><div></div></div></div></div></blockquote></div></div>