Documentation for conditional conformances


There are plenty of changes which are not go through with Swift Evolution proposals after the conditional conformances are implemented. It's not clear about what types conform to what protocols with what requirements.
Should we have a topic about all of the changes? I need inheritance graphs for that.

Which changes are you talking about?

here are some of changes

Lazy[ Bidirectional | RandomAccess ]Collection -> LazyCollection
[ Mutable ][ RangeReplaceable ][ Bidirectional | RandomAccess ]Slice -> Slice


These were all outlined in SE-0134.

I have forgotten that the Array is confirmed Equatable but not Hashable.

The core team felt that the guidance for standard library adoption laid out in SE-0143 was sufficient for the adoption of conditional conformances in the standard library (i.e, we didn't need a separate review process).

I think it would be valuable to update SE-0143 with details of these changes to the standard library. We've done that in the past--filling in clarifying details to already-accepted proposals once they've been implemented. This is something anyone in the Swift community with an interest can tackle: look through the various pull requests adopting conditional conformances (and the blog post on conditional conformances) and create a pull request against GitHub - apple/swift-evolution: This maintains proposals for changes and user-visible enhancements to the Swift Programming Language. to update SE-0143 accordingly.

  • Doug
1 Like

Yes, of course, I’m not saying that we need a separate review process.
However, we should state all changes and document it clearly. That will help everyone to understand the relationship of the types and what the requirements.

I even don’t know what changes are makes with LazySequence.