Hello, Swift community.
The review of SE-0494 ran from September 22nd to October 13th, 2025. This period includes a one-week extension to discuss a revision that the LSG requested after considering the initial feedback.
The community's feedback in the review thread was spirited. Overall, community members generally (1) supported the addition of the API but (2) expressed concern about the name. This is what caused the LSG to suggest the revision of renaming the method to isTriviallyIdentical(to:). Subsequent community feedback seemed to broadly support that change, although a few objections and counter-proposals were floated.
Triviality is both a somewhat technical concept and a somewhat imprecise and overloaded one. Mathematics gives it one meaning, languages like C++ another, normal English usage still another. Swift has specifically avoided it in the past, e.g. with BitwiseCopyable.[1] But we have not found an appealing alternative, and isTriviallyIdentical(to:) does seem to suggest the right things, both of being cheap and of being not the same thing as equality. The LSG has therefore decided to move forward with this name.
The LSG discussed what to do with the existing methods on Span. We have decided that the Span types should add methods with these names, and we are still considering whether to formally deprecate the existing ones. We do not believe there is a need for further evolution review on that topic, however.
Accordingly, SE-0494 is accepted with modifications: specifically, to rename the new methods to isTriviallyIdentical(to:) and to add them to the Span types as well.
As always, I'd like to thank the community for its thoughtful contributions during the pitch and review of this proposal. The community's involvement helps to make Swift a better language.
John McCall
Review Manager
The LSG specifically discussed
isBitwiseIdentical(to:)and decided that it was not a good name. We don't want clients or implementors to be focused on bit-level representation details, and we don't want APIs feel like they have to use a different name just because their check is slightly more involved than amemcmp. ↩︎
