<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">+1<div class=""><br class=""></div><div class="">-Thorsten</div><div class=""><br class=""></div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">Am 22.11.2017 um 18:48 schrieb Chris Lattner via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>>:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">IMO this is obvious and you should put it in.<div class=""><br class=""></div><div class="">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 class=""><br class=""></div><div class="">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 class=""><br class=""></div><div class="">-Chris</div><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Nov 21, 2017, at 10:51 PM, Douglas Gregor via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html; charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi all,<div class=""><br class=""></div><div class="">We’re having a <a href="https://github.com/apple/swift/pull/12910" class="">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" class="">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 class=""><br class=""></div><div class="">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 class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space: pre;">        </span>extension Optional: Equatable where Wrapped: Equatable { /*== already exists */ }</div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>extension Array: Equatable where Element: Equatable { /*== already exists */ }</div><div class=""><div class=""><span class="Apple-tab-span" style="white-space: pre;">        </span>extension ArraySlice: Equatable where Element: Equatable { /*== already exists */ }</div></div><div class=""><div class=""><span class="Apple-tab-span" style="white-space: pre;">        </span>extension ContiguousArray: Equatable where Element: Equatable { /*== already exists */ }</div></div><div class=""><div class=""><span class="Apple-tab-span" style="white-space: pre;">        </span>extension Dictionary: Equatable where Value: Equatable { /*== already exists */ }</div></div><div class=""><div class=""><span class="Apple-tab-span" style="white-space: pre;">        </span>extension Set: Equatable { /*== already exists */ }</div></div><div class=""><br class=""></div><div class="">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 class=""><br class=""></div><div class="">Implementation: <a href="https://github.com/apple/swift/pull/13046" class="">https://github.com/apple/swift/pull/13046</a></div><div class=""><br class=""></div><div class="">Thoughts?</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>- Doug</div><div class=""><br class=""></div></div>_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""></div></blockquote></div><br class=""></div></div>_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-evolution<br class=""></div></blockquote></div><br class=""></div></body></html>