+1 Agree with Chris with Doug’s suggestion to amend SE-0143 to document it.

> On Nov 22, 2017, at 10:08 AM, Douglas Gregor via swift-evolution 
> <swift-evolution@swift.org> wrote:
> On Nov 22, 2017, at 9:48 AM, Chris Lattner <clatt...@nondot.org 
> <mailto:clatt...@nondot.org>> wrote:
> 
>> IMO this is obvious and you should put it in.
>> 
>> 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.
> 
> 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. 
> 
>> 
>> 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.
> 
> Right. All of the consolidation of the various Slice and lazy types is big 
> enough to warrant a proposal, for example. 
> 
>   - Doug
> 
>> 
>> -Chris
>> 
>>> On Nov 21, 2017, at 10:51 PM, Douglas Gregor via swift-evolution 
>>> <swift-evolution@swift.org <mailto: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 <mailto:swift-evolution@swift.org>
>>> https://lists.swift.org/mailman/listinfo/swift-evolution 
>>> <https://lists.swift.org/mailman/listinfo/swift-evolution>
>> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

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

Reply via email to