<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">Am 19.10.2017 um 01:13 schrieb Adam Kemp &lt;<a href="mailto:adam_kemp@apple.com" class="">adam_kemp@apple.com</a>&gt;:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html; charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Oct 18, 2017, at 3:38 PM, Thorsten Seitz &lt;<a href="mailto:tseitz42@icloud.com" class="">tseitz42@icloud.com</a>&gt; wrote:</div><div class=""><div style="font-family: Helvetica; font-size: 24px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class=""></div><div style="font-family: Helvetica; font-size: 24px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">Now this is not production code (hopefully) but it demonstrates the problem.</div></div></blockquote><div class=""><br class=""></div><div class="">A single StackOverflow post is not convincing evidence of a problem that leads to many real-world bugs. No one here would dispute that people can get confused. That’s why there’s a proposal in the first place. The proposal would have prevented this example merely by making the name clearer.</div><div class=""><br class=""></div><div class="">This is at best evidence that a name change is needed. It’s not evidence that we should make large changes to the library and language.</div><br class=""><blockquote type="cite" class=""><div class=""><div style="font-family: Helvetica; font-size: 24px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">How will I know if the code behind a generic function taking a Sequence as argument will internally use `elementsEqual` so that I cannot use a Set as argument?&nbsp;</div></div></blockquote><div class=""><br class=""></div>More generally, how would you know if someone wrote a function that takes an unordered sequence and then writes an algorithm that relies on the order anyway? Splitting the Sequence protocol can’t guarantee you won’t have those kind of bugs. If the semantics of the function are not clear then that’s a naming problem or a library design problem. That’s why the proposal is to fix the name so that it’s clear what it actually does.</div></div></div></blockquote></div><div class=""><br class=""></div>I agree, it is a naming problem or a library design problem. That’s why I propose to have different names for both notions (unordered and ordered), so that it’s clear what the contract of the whole type is (and not just that of a single method).<div class=""><br class=""></div><div class="">-Thorsten</div></body></html>