SE-0203 — Rename Sequence.elementsEqual

Proposal Declined

The Core Team weighed all the feedback on this review thread, and decided to ultimately decline to make the change proposed in this proposal.

Rationale

There was enough consensus on the review thread that the current name of the API can be misinterpreted. When assessing this kind of API change, we weighed the following factors:

  1. How harmful is the current name of the API?
  2. How much improvement is possible by changing the API name?
  3. How much harm does the change associated with improvement cause?

For #3, the main harm is unnecessary source churn for users.

For #1, much of the harm that motivated this proposal is mitigated somewhat by the ability to consistently use == now that conditional conformances have been adopted (where appropriate) for Standard Library types.

For #2, the benefits can outweigh the concerns for #3 if it is clear the newly proposed name is a clearly better solution and the "right" API. For this there was no clear consensus on the review. Neither the API name in the proposal or alternatives proposed during the review seemed like clearly better APIs that both delivered benefits that outweighed the source churn this change would require.

These kind of API discussions are a delicate balance. As Swift continues to mature the bar to rename APIs will get higher. Ultimately the perspective from the Core Team is that this renaming did not meet the current bar.

Thank you to everyone who participated in this review!

Ted Kremenek
Review Manager

6 Likes