<div dir="ltr">On Fri, Oct 13, 2017 at 11:58 PM, Adam Kemp <span dir="ltr"><<a href="mailto:adam.kemp@apple.com" target="_blank">adam.kemp@apple.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">> That the proposed name is obtuse is intentional--as Nate has surmised--as a way to prompt the unfamiliar user to look up the documentation.<br>
<br>
</span>This is a strange philosophy for naming things. I see what you’re saying, but it feels very wrong to deliberately name something such that people will not understand it without documentation. I feel like we can do better than that. </blockquote></div><br></div><div class="gmail_extra">That's not exactly the philosophy. The overarching desiderata are:</div><div class="gmail_extra"><br></div><div class="gmail_extra">1. This method must be named in such a way that clearly conveys that it is not plausibly a spelling for `==`. To my best estimation, users who unintentionally use `elementsEqual` instead of `==` do so because they see the former listed when they read the documentation but don't see the latter (as operators suffer from various discoverability issues), and then they think, "Swift designers must have decided to use this spelling as the equivalent of `==` for arrays." By contrast, no one sees `lexicographicallyPrecedes` and thinks, "Swift designers must have decided to use this spelling as the equivalent of `<` for arrays!"</div><div class="gmail_extra"><br></div><div class="gmail_extra">2. If a user is familiar with what a lexicographical comparison is, then they should be able to (correctly) identify this method as of a kind without going to the documentation. If a user is unfamiliar with what a lexicographical comparison is, then they should not be misled by the method name to think that it is something other than what it is; they need to read the documentation and we do a good thing by alerting them to that need by a carefully thought-out name--we are not thereby *creating* additional demands to consult the documentation.</div><div class="gmail_extra"><br></div></div>