<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<div name="messageBodySection" style="font-size: 14px; font-family: -apple-system, BlinkMacSystemFont, sans-serif;">`integers.all { $0.isEven }` reads like an alias of `filter` to me. The meaning is ambiguous because the missing argument label can be filled in in different ways -- some will read this as "all are even", and others will read it as "all that are even".
<div><br /></div>
<div>I think that ambiguity should be avoided. Something along the lines of `integers.allMatch { $0.isEven }` does just that and reads quite nicely in my opinion. I also like `integers.containsOnly { $0.isEven }` a lot since it pairs nicely with the existing `contains` method.</div>
</div>
<div name="messageSignatureSection" style="font-size: 14px; font-family: -apple-system, BlinkMacSystemFont, sans-serif;"><br />
Jarod</div>
<div name="messageReplySection" style="font-size: 14px; font-family: -apple-system, BlinkMacSystemFont, sans-serif;"><br />
On Apr 4, 2017, 02:16 -0700, David Rönnqvist via swift-evolution &lt;swift-evolution@swift.org&gt;, wrote:<br />
<blockquote type="cite" style="margin: 5px 5px; padding-left: 10px; border-left: thin solid #1abc9c;">
<div class="">I agree that&#160;&#160;`all(equal:)` and `all(match:)` are really good names for these methods (I could also consider `every`).</div>
<div class=""><br class="" /></div>
<div class="">In my understanding of the Swift&#160;API Design Guidelines, it’s good for a number of reasons:</div>
<div class=""><br class="" /></div>
<div class="">It omits needless words. It’s a sequence of Element, so explicitly mentioning “elements”, “members”, or “items" doesn’t add much.</div>
<div class=""><br class="" /></div>
<div class="">It strives for fluent usage <i class="">when used with their argument labels</i>. As&#160;Daniel Duan pointed out, these names roughly read read as:</div>
<div class=""><br class="" /></div>
<div class="">
<blockquote type="cite" class="" style="margin: 5px 5px; padding-left: 10px; border-left: thin solid #e67e22;">
<div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<div class="">things all match condition?</div>
<div class="">things all equal value?</div>
</div>
</blockquote>
</div>
<div class=""><br class="" /></div>
<div class="">Without the argument label it’s not as clear what it does, but other&#160;functions have a similar problems when used without argument labels. For example,&#160;</div>
<div class=""><br class="" /></div>
<div class="">xs.prefix { $0 &gt; 5 }</div>
<div class="">xs.drop { $0 &gt; 5 }</div>
<div class="">xs.index { $0 &gt; 5 }</div>
<div class=""><br class="" /></div>
<div class="">It uses terminology well, if `all` is accepted as a term of art. It is at least a common term in other languages for this functionality.&#160;</div>
<div class=""><br class="" /></div>
<div class="">However, one area where it doesn’t hold as well (ignoring any term of art argument) is that&#160;Boolean methods [...] should read as assertions […] when the use is nonmutating. Here I kind of like the `are` prefix, similar to how `empty` has an `is` prefix (isEmpty). In this case I would also like to see the labels change for a more fluent usage: `areAll(equalTo:)` and `areAll(matching:)`.</div>
<div class=""><br class="" /></div>
<div class=""><br class="" /></div>
<div>
<blockquote type="cite" class="" style="margin: 5px 5px; padding-left: 10px; border-left: thin solid #e67e22;">
<div class="">On 3 Apr 2017, at 10:29, Daniel Duan via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div>
<br class="Apple-interchange-newline" />
<div class="">
<meta http-equiv="Content-Type" content="text/html charset=us-ascii" class="" />
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">I want to retract my nitpickings on argument labels; `all(equal:)` and `all(match:)` are the best names for these methods.
<div class=""><br class="" /></div>
<div class="">things all match condition?</div>
<div class="">things all equal value?</div>
<div class=""><br class="" /></div>
<div class="">If we accept `all` as a term of art (which I think we should), along with these labels the use site are very readable!</div>
<div class="">
<div class=""><br class="" />
<div class="">
<div class="">
<blockquote type="cite" class="" style="margin: 5px 5px; padding-left: 10px; border-left: thin solid #3498db;">
<div class="">On Mar 31, 2017, at 6:38 PM, Daniel Duan via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div>
<br class="Apple-interchange-newline" />
<div class="">
<meta http-equiv="Content-Type" content="text/html charset=us-ascii" class="" />
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">nit: should these names be `all(matching)`/`all(equalTo)` per API Design Guidelines?<br class="" />
<div class="">
<blockquote type="cite" class="" style="margin: 5px 5px; padding-left: 10px; border-left: thin solid #d35400;">
<div class="">On Mar 31, 2017, at 8:28 AM, Ben Cohen via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div>
<br class="Apple-interchange-newline" />
<div class="">
<meta http-equiv="Content-Type" content="text/html charset=us-ascii" class="" />
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi,
<div class=""><br class="" /></div>
<div class="">A short proposal for you as part of the algorithms theme. Hopefully non-controversial, aside from the naming of the method and arguments, about which controversy abounds. Online copy here:&#160;<a href="https://github.com/airspeedswift/swift-evolution/blob/9a778e904c9be8a3692edd19bb757b23c54aacbe/proposals/0162-all-algorithm.md" class="">https://github.com/airspeedswift/swift-evolution/blob/9a778e904c9be8a3692edd19bb757b23c54aacbe/proposals/0162-all-algorithm.md</a></div>
<div class=""><br class="" /></div>
<div class=""><br class="" /></div>
<div class="">
<h1 id="add-an--code-all--code--algorithm-to--code-sequence--code-" style="box-sizing: border-box; font-size: 2.25em; margin-right: 0px; margin-bottom: 16px; margin-left: 0px; line-height: 1.2; position: relative; color: rgb(51, 51, 51); padding-bottom: 0.3em; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(238, 238, 238); font-family: helvetica, arial, freesans, clean, sans-serif; background-color: rgb(255, 255, 255); margin-top: 0px !important;" class="">Add an&#160;<code style="box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 24.479999542236328px; padding: 0.2em 0px; margin: 0px; background-color: rgba(0, 0, 0, 0.0392157); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;" class="">all</code>&#160;algorithm to&#160;<code style="box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 24.479999542236328px; padding: 0.2em 0px; margin: 0px; background-color: rgba(0, 0, 0, 0.0392157); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;" class="">Sequence</code></h1>
<ul style="box-sizing: border-box; padding: 0px 0px 0px 2em; margin-top: 0px; margin-bottom: 16px; color: rgb(51, 51, 51); font-family: helvetica, arial, freesans, clean, sans-serif; font-size: 12.799999237060547px; background-color: rgb(255, 255, 255);" class="">
<li style="box-sizing: border-box;" class="">Proposal:&#160;<a href="file:///Users/ben_cohen/Documents/swift-evolution/proposals/0162-all-algorithm.md" style="box-sizing: border-box; background-color: transparent; color: rgb(65, 131, 196); text-decoration: none;" class="">SE-NNNN</a></li>
<li style="box-sizing: border-box;" class="">Authors:&#160;<a href="https://github.com/airspeedswift" style="box-sizing: border-box; background-color: transparent; color: rgb(65, 131, 196); text-decoration: none;" class="">Ben Cohen</a></li>
<li style="box-sizing: border-box;" class="">Review Manager: TBD</li>
<li style="box-sizing: border-box;" class="">Status:&#160;<strong style="box-sizing: border-box;" class="">Awaiting review</strong></li>
</ul>
<h2 id="introduction" style="box-sizing: border-box; margin-top: 1em; margin-bottom: 16px; line-height: 1.225; font-size: 1.75em; position: relative; color: rgb(51, 51, 51); padding-bottom: 0.3em; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(238, 238, 238); font-family: helvetica, arial, freesans, clean, sans-serif; background-color: rgb(255, 255, 255);" class="">Introduction</h2>
<p style="box-sizing: border-box; margin: 0px 0px 16px; color: rgb(51, 51, 51); font-family: helvetica, arial, freesans, clean, sans-serif; font-size: 12.799999237060547px; background-color: rgb(255, 255, 255);" class="">It is common to want to confirm that every element of a sequence equals a value, or matches a certain criteria. Many implementations of this can be found in use on github. This proposal adds such a method to&#160;<code style="box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 10.880000114440918px; padding: 0.2em 0px; margin: 0px; background-color: rgba(0, 0, 0, 0.0392157); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;" class="">Sequence</code>.</p>
<h2 id="motivation" style="box-sizing: border-box; margin-top: 1em; margin-bottom: 16px; line-height: 1.225; font-size: 1.75em; position: relative; color: rgb(51, 51, 51); padding-bottom: 0.3em; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(238, 238, 238); font-family: helvetica, arial, freesans, clean, sans-serif; background-color: rgb(255, 255, 255);" class="">Motivation</h2>
<p style="box-sizing: border-box; margin: 0px 0px 16px; color: rgb(51, 51, 51); font-family: helvetica, arial, freesans, clean, sans-serif; font-size: 12.799999237060547px; background-color: rgb(255, 255, 255);" class="">You can achieve this in Swift 3 with&#160;<code style="box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 10.880000114440918px; padding: 0.2em 0px; margin: 0px; background-color: rgba(0, 0, 0, 0.0392157); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;" class="">contains</code>&#160;by negating both the criteria and the result:</p>
<pre style="box-sizing: border-box; overflow: auto; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 10.880000114440918px; margin-top: 0px; margin-bottom: 16px; font-stretch: normal; line-height: 1.45; padding: 16px; background-color: rgb(248, 248, 248); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; word-wrap: normal; tab-size: 4; color: rgb(51, 51, 51); height: 103px;" class="">
<code class="swift hljs" style="box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; padding: 0.5em; margin: 0px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; border: 0px; display: block; overflow-x: auto; line-height: inherit; word-wrap: normal; height: auto;"><span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">// every element is 9</span>
!nums.<span class="hljs-built_in" style="box-sizing: border-box; color: rgb(0, 134, 179);">contains</span> { $<span class="hljs-number" style="box-sizing: border-box; color: rgb(0, 128, 128);">0</span> != <span class="hljs-number" style="box-sizing: border-box; color: rgb(0, 128, 128);">9</span> }
<span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">// every element is odd</span>
!nums.<span class="hljs-built_in" style="box-sizing: border-box; color: rgb(0, 134, 179);">contains</span> { !isOdd($<span class="hljs-number" style="box-sizing: border-box; color: rgb(0, 128, 128);">0</span>) }</code>
</pre>
<p style="box-sizing: border-box; margin: 0px 0px 16px; color: rgb(51, 51, 51); font-family: helvetica, arial, freesans, clean, sans-serif; font-size: 12.799999237060547px; background-color: rgb(255, 255, 255);" class="">but these are a readability nightmare. Additionally, developers may not make the leap to realize&#160;<code style="box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 10.880000114440918px; padding: 0.2em 0px; margin: 0px; background-color: rgba(0, 0, 0, 0.0392157); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;" class="">contains</code>&#160;can be used this way, so may hand-roll their own&#160;<code style="box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 10.880000114440918px; padding: 0.2em 0px; margin: 0px; background-color: rgba(0, 0, 0, 0.0392157); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;" class="">for</code>&#160;loop, which could be buggy<ins id="firstdiff" style="box-sizing: border-box; display: inline-block; position: absolute; left: -8px; text-decoration: none !important; border: none !important; background-image: none !important; background-position: initial initial !important; background-repeat: initial initial !important;" class=""></ins>, or compose other inefficient alternatives:</p>
<pre style="box-sizing: border-box; overflow: auto; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 10.880000114440918px; margin-top: 0px; margin-bottom: 16px; font-stretch: normal; line-height: 1.45; padding: 16px; background-color: rgb(248, 248, 248); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; word-wrap: normal; tab-size: 4; color: rgb(51, 51, 51); height: 103px;" class="">
<code class="swift hljs" style="box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; padding: 0.5em; margin: 0px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; border: 0px; display: block; overflow-x: auto; line-height: inherit; word-wrap: normal; height: auto;"><span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">// misses opportunity to bail early</span>
nums.<span class="hljs-built_in" style="box-sizing: border-box; color: rgb(0, 134, 179);">reduce</span>(<span class="hljs-literal" style="box-sizing: border-box; color: rgb(0, 128, 128);">true</span>) { $<span class="hljs-number" style="box-sizing: border-box; color: rgb(0, 128, 128);">0.0</span> &amp;&amp; $<span class="hljs-number" style="box-sizing: border-box; color: rgb(0, 128, 128);">0.1</span> == <span class="hljs-number" style="box-sizing: border-box; color: rgb(0, 128, 128);">9</span> }
<span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">// the most straw-man travesty I could think of...</span>
<span class="hljs-type" style="box-sizing: border-box; color: rgb(68, 85, 136); font-weight: bold;">Set</span>(nums).<span class="hljs-built_in" style="box-sizing: border-box; color: rgb(0, 134, 179);">count</span> == <span class="hljs-number" style="box-sizing: border-box; color: rgb(0, 128, 128);">1</span> &amp;&amp; <span class="hljs-type" style="box-sizing: border-box; color: rgb(68, 85, 136); font-weight: bold;">Set</span>(nums).first == <span class="hljs-number" style="box-sizing: border-box; color: rgb(0, 128, 128);">9</span></code>
</pre>
<h2 id="proposed-solution" style="box-sizing: border-box; margin-top: 1em; margin-bottom: 16px; line-height: 1.225; font-size: 1.75em; position: relative; color: rgb(51, 51, 51); padding-bottom: 0.3em; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(238, 238, 238); font-family: helvetica, arial, freesans, clean, sans-serif; background-color: rgb(255, 255, 255);" class="">Proposed solution</h2>
<p style="box-sizing: border-box; margin: 0px 0px 16px; color: rgb(51, 51, 51); font-family: helvetica, arial, freesans, clean, sans-serif; font-size: 12.799999237060547px; background-color: rgb(255, 255, 255);" class="">Introduce two algorithms on&#160;<code style="box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 10.880000114440918px; padding: 0.2em 0px; margin: 0px; background-color: rgba(0, 0, 0, 0.0392157); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;" class="">Sequence</code>&#160;which test every element and return&#160;<code style="box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 10.880000114440918px; padding: 0.2em 0px; margin: 0px; background-color: rgba(0, 0, 0, 0.0392157); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;" class="">true</code>&#160;if they match:</p>
<pre style="box-sizing: border-box; overflow: auto; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 10.880000114440918px; margin-top: 0px; margin-bottom: 16px; font-stretch: normal; line-height: 1.45; padding: 16px; background-color: rgb(248, 248, 248); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; word-wrap: normal; tab-size: 4; color: rgb(51, 51, 51); height: 73px;" class="">
<code class="swift hljs" style="box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; padding: 0.5em; margin: 0px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; border: 0px; display: block; overflow-x: auto; line-height: inherit; word-wrap: normal; height: auto;">nums.all(<span class="hljs-built_in" style="box-sizing: border-box; color: rgb(0, 134, 179);">equal</span>: <span class="hljs-number" style="box-sizing: border-box; color: rgb(0, 128, 128);">9</span>)
nums.all(match: isOdd)</code>
</pre>
<h2 id="detailed-design" style="box-sizing: border-box; margin-top: 1em; margin-bottom: 16px; line-height: 1.225; font-size: 1.75em; position: relative; color: rgb(51, 51, 51); padding-bottom: 0.3em; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(238, 238, 238); font-family: helvetica, arial, freesans, clean, sans-serif; background-color: rgb(255, 255, 255);" class="">Detailed design</h2>
<p style="box-sizing: border-box; margin: 0px 0px 16px; color: rgb(51, 51, 51); font-family: helvetica, arial, freesans, clean, sans-serif; font-size: 12.799999237060547px; background-color: rgb(255, 255, 255);" class="">Add the following extensions to&#160;<code style="box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 10.880000114440918px; padding: 0.2em 0px; margin: 0px; background-color: rgba(0, 0, 0, 0.0392157); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;" class="">Sequence</code>:</p>
<pre style="box-sizing: border-box; overflow: auto; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 10.880000114440918px; margin-top: 0px; margin-bottom: 16px; font-stretch: normal; line-height: 1.45; padding: 16px; background-color: rgb(248, 248, 248); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; word-wrap: normal; tab-size: 4; color: rgb(51, 51, 51); height: 208px;" class="">
<code class="swift hljs" style="box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; padding: 0.5em; margin: 0px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; border: 0px; display: block; overflow-x: auto; line-height: inherit; word-wrap: normal; height: auto;"><span class="hljs-class" style="box-sizing: border-box;"><span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">extension</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(68, 85, 136); font-weight: bold;">Sequence</span> </span>{
  <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">/// Returns a Boolean value indicating whether every element of the sequence</span>
  <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">/// satisfies the given predicate.</span>
  <span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">func</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(153, 0, 0); font-weight: bold;">all</span><span class="hljs-params" style="box-sizing: border-box;">(match criteria: <span class="hljs-params" style="box-sizing: border-box;">(Iterator.Element)</span></span></span> <span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">throws</span> -&gt; <span class="hljs-type" style="box-sizing: border-box; color: rgb(68, 85, 136); font-weight: bold;">Bool</span>) <span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">rethrows</span> -&gt; <span class="hljs-type" style="box-sizing: border-box; color: rgb(68, 85, 136); font-weight: bold;">Bool</span>
}

<span class="hljs-class" style="box-sizing: border-box;"><span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">extension</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(68, 85, 136); font-weight: bold;">Sequence</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(68, 85, 136); font-weight: bold;">where</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(68, 85, 136); font-weight: bold;">Iterator</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(68, 85, 136); font-weight: bold;">Element</span>: <span class="hljs-title" style="box-sizing: border-box; color: rgb(68, 85, 136); font-weight: bold;">Equatable</span> </span>{
  <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">/// Returns a Boolean value indicating whether every element of the sequence</span>
  <span class="hljs-comment" style="box-sizing: border-box; color: rgb(153, 153, 136); font-style: italic;">/// equals the given element.</span>
  <span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="box-sizing: border-box; font-weight: bold;">func</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(153, 0, 0); font-weight: bold;">all</span><span class="hljs-params" style="box-sizing: border-box;">(<span class="hljs-built_in" style="box-sizing: border-box; color: rgb(0, 134, 179);">equal</span> element: Iterator.Element)</span></span> -&gt; <span class="hljs-type" style="box-sizing: border-box; color: rgb(68, 85, 136); font-weight: bold;">Bool</span>
}</code>
</pre>
<h2 id="source-compatibility" style="box-sizing: border-box; margin-top: 1em; margin-bottom: 16px; line-height: 1.225; font-size: 1.75em; position: relative; color: rgb(51, 51, 51); padding-bottom: 0.3em; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(238, 238, 238); font-family: helvetica, arial, freesans, clean, sans-serif; background-color: rgb(255, 255, 255);" class="">Source compatibility</h2>
<p style="box-sizing: border-box; margin: 0px 0px 16px; color: rgb(51, 51, 51); font-family: helvetica, arial, freesans, clean, sans-serif; font-size: 12.799999237060547px; background-color: rgb(255, 255, 255);" class="">This change is purely additive so has no source compatibility consequences.</p>
<h2 id="effect-on-abi-stability" style="box-sizing: border-box; margin-top: 1em; margin-bottom: 16px; line-height: 1.225; font-size: 1.75em; position: relative; color: rgb(51, 51, 51); padding-bottom: 0.3em; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(238, 238, 238); font-family: helvetica, arial, freesans, clean, sans-serif; background-color: rgb(255, 255, 255);" class="">Effect on ABI stability</h2>
<p style="box-sizing: border-box; margin: 0px 0px 16px; color: rgb(51, 51, 51); font-family: helvetica, arial, freesans, clean, sans-serif; font-size: 12.799999237060547px; background-color: rgb(255, 255, 255);" class="">This change is purely additive so has no ABI stability consequences.</p>
<h2 id="effect-on-api-resilience" style="box-sizing: border-box; margin-top: 1em; margin-bottom: 16px; line-height: 1.225; font-size: 1.75em; position: relative; color: rgb(51, 51, 51); padding-bottom: 0.3em; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(238, 238, 238); font-family: helvetica, arial, freesans, clean, sans-serif; background-color: rgb(255, 255, 255);" class="">Effect on API resilience</h2>
<p style="box-sizing: border-box; margin: 0px 0px 16px; color: rgb(51, 51, 51); font-family: helvetica, arial, freesans, clean, sans-serif; font-size: 12.799999237060547px; background-color: rgb(255, 255, 255);" class="">This change is purely additive so has no API resilience consequences.</p>
<h2 id="alternatives-considered" style="box-sizing: border-box; margin-top: 1em; margin-bottom: 16px; line-height: 1.225; font-size: 1.75em; position: relative; color: rgb(51, 51, 51); padding-bottom: 0.3em; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(238, 238, 238); font-family: helvetica, arial, freesans, clean, sans-serif; background-color: rgb(255, 255, 255);" class="">Alternatives considered</h2>
<div style="box-sizing: border-box; margin-top: 0px; margin-right: 0px; margin-left: 0px; color: rgb(51, 51, 51); font-family: helvetica, arial, freesans, clean, sans-serif; font-size: 12.799999237060547px; background-color: rgb(255, 255, 255); margin-bottom: 0px !important;" class="">Not adding it.</div>
</div>
</div>
_______________________________________________<br class="" />
swift-evolution mailing list<br class="" />
<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class="" />
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class="" /></div>
</blockquote>
</div>
<br class="" /></div>
_______________________________________________<br class="" />
swift-evolution mailing list<br class="" />
<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class="" />
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class="" /></div>
</blockquote>
</div>
<br class="" /></div>
</div>
</div>
</div>
_______________________________________________<br class="" />
swift-evolution mailing list<br class="" />
<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class="" />
https://lists.swift.org/mailman/listinfo/swift-evolution<br class="" /></div>
</blockquote>
</div>
<br class="" />
_______________________________________________<br />
swift-evolution mailing list<br />
swift-evolution@swift.org<br />
https://lists.swift.org/mailman/listinfo/swift-evolution<br /></blockquote>
</div>
</body>
</html>