> On 22. Nov 2017, at 07:51, Douglas Gregor via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> Hi all,
> 
> We’re having a bit of a debate <https://github.com/apple/swift/pull/12910> 
> over the question of whether SE-0143 “Conditional Conformances” 
> <https://github.com/apple/swift-evolution/blob/master/proposals/0143-conditional-conformances.md>
>  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 :)
> 
> 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:
> 
>       extension Optional: Equatable where Wrapped: Equatable { /*== already 
> exists */ }
>       extension Array: Equatable where Element: Equatable { /*== already 
> exists */ }
>       extension ArraySlice: Equatable where Element: Equatable { /*== already 
> exists */ }
>       extension ContiguousArray: Equatable where Element: Equatable { /*== 
> already exists */ }
>       extension Dictionary: Equatable where Value: Equatable { /*== already 
> exists */ }
>       extension Set: Equatable { /*== already exists */ }
> 
> 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.
> 
> Implementation: https://github.com/apple/swift/pull/13046 
> <https://github.com/apple/swift/pull/13046>
> 
> Thoughts?
> 
> 
>       - Doug
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

I think they’re supposed to be brought up separately. There are actually a few 
areas of the standard library that have become outdated as we accepted new 
language features without corresponding proposals about using them. For 
example, we have top-level SetIndex and DictionaryIndex typealiases and 
SetIterator and DictionaryIterator types; dinosaurs from the era before nested 
generics.

As for this proposal? +1. Obviously.

- Karl
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to