<div dir="ltr">Agree with the sentiment above. Equatable conformance for collections is not just an obvious consequence of SE-0143 but one of the motivators—after all, Array is mentioned right in the intro. Let it be done without a full review cycle :)<div><br></div></div><br><div class="gmail_quote"><div dir="ltr">On Wed, Nov 22, 2017 at 12:04 PM Hooman Mehr via swift-evolution <<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>> 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;line-break:after-white-space">+1 Agree with Chris with Doug’s suggestion to amend SE-0143 to document it.</div><div style="word-wrap:break-word;line-break:after-white-space"><br><div><br><blockquote type="cite"><div>On Nov 22, 2017, at 10:08 AM, Douglas Gregor via swift-evolution <<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>> wrote:</div><div><div dir="auto"><div>On Nov 22, 2017, at 9:48 AM, Chris Lattner <<a href="mailto:clattner@nondot.org" target="_blank">clattner@nondot.org</a>> wrote:<br><br></div><blockquote type="cite"><div>IMO this is obvious and you should put it in.<div><br></div><div>The process serves a purpose: to ensure the evolution of the language is going in the right place, both directionally in an details. It is obvious that we’re going to take this, and the details are clear, therefore doing an evolution cycle for this would just waste everyone’s time.</div></div></blockquote><div><br></div>I’ve been leaning this way as well. We can treat this small addition as an amendment to SE-0143 so the change is documented appropriately. <div><br><blockquote type="cite"><div><div><br></div><div>That said, when you get to less obvious introductions and start doing more major consolidation and simplification of the stdlib, those changes may be worthy of discussion to ensure the details are right.</div></div></blockquote><div><br></div>Right. All of the consolidation of the various Slice and lazy types is big enough to warrant a proposal, for example. </div><div><br></div><div> - Doug</div><div><br><blockquote type="cite"><div><div><br></div><div>-Chris</div><div><br><div><blockquote type="cite"><div>On Nov 21, 2017, at 10:51 PM, Douglas Gregor via swift-evolution <<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>> wrote:</div><br class="m_8246924933141250280Apple-interchange-newline"><div><div style="word-wrap:break-word;line-break:after-white-space">Hi all,<div><br></div><div>We’re having a <a href="https://github.com/apple/swift/pull/12910" target="_blank">bit of a debate</a> over the question of whether <a href="https://github.com/apple/swift-evolution/blob/master/proposals/0143-conditional-conformances.md" target="_blank">SE-0143 “Conditional Conformances”</a> actually proposes any standard library changes at all, or whether they should all be brought up separately. So, I’ll pitch the pieces that I’d love to put into 4.1 to see if they’re as obvious as I think they should be :)</div><div><br></div><div>Proposal: make Optional, Array, ArraySlice, ContiguousArray, and Dictionary conform to Equatable when their type parameters are Equatable (and Set always conform to Equatable). Specifically, add to the standard library:</div><div><br></div><div><span class="m_8246924933141250280Apple-tab-span" style="white-space:pre-wrap">        </span>extension Optional: Equatable where Wrapped: Equatable { /*== already exists */ }</div><div><span class="m_8246924933141250280Apple-tab-span" style="white-space:pre-wrap">        </span>extension Array: Equatable where Element: Equatable { /*== already exists */ }</div><div><div><span class="m_8246924933141250280Apple-tab-span" style="white-space:pre-wrap">        </span>extension ArraySlice: Equatable where Element: Equatable { /*== already exists */ }</div></div><div><div><span class="m_8246924933141250280Apple-tab-span" style="white-space:pre-wrap">        </span>extension ContiguousArray: Equatable where Element: Equatable { /*== already exists */ }</div></div><div><div><span class="m_8246924933141250280Apple-tab-span" style="white-space:pre-wrap">        </span>extension Dictionary: Equatable where Value: Equatable { /*== already exists */ }</div></div><div><div><span class="m_8246924933141250280Apple-tab-span" style="white-space:pre-wrap">        </span>extension Set: Equatable { /*== already exists */ }</div></div><div><br></div><div>Motivation: we need these for ==/!= to properly compose. It’s a highly-requested feature and an obvious “first use” of conditional conformances for the standard library that is unlikely to break any code.</div><div><br></div><div>Implementation: <a href="https://github.com/apple/swift/pull/13046" target="_blank">https://github.com/apple/swift/pull/13046</a></div><div><br></div><div>Thoughts?</div><div><br></div><div><br></div><div><span class="m_8246924933141250280Apple-tab-span" style="white-space:pre-wrap">        </span>- Doug</div><div><br></div></div>_______________________________________________<br>swift-evolution mailing list<br><a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br></div></blockquote></div><br></div></div></blockquote></div></div>_______________________________________________<br>swift-evolution mailing list<br><a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br></div></blockquote></div><br></div>_______________________________________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
</blockquote></div>