<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Jun 7, 2016 at 2:16 PM, Tim Vermeulen <span dir="ltr">&lt;<a href="mailto:tvermeulen@me.com" target="_blank">tvermeulen@me.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">&gt; The meaning of the proposed while is not at all a pair for where, since where clauses in while loops would do the same thing as while clauses in for loops. That&#39;s crazy.<br>
<br>
</span>It sounds crazy, but it’s the nature of the while loop. A where clause in a while loop also has a different result than a where clause in a for loop.<br></blockquote><div><br></div><div>I know. And SE-0099 proposed to eliminate it, and I am very supportive of that. For all of the reasons outlined in that conversation (including the different behaviors in while and for loops), I arrive at the conclusion that `where` is unsuitable for use in all condition statements and would support its complete elimination from the language.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class=""><br>
&gt; filter() is and prefix(while:) will be available on all sequences. The for...in loop only traverses through sequences.<br>
&gt;<br>
&gt; The meaning of the proposed while is not at all a pair for where, since where clauses in while loops would do the same thing as while clauses in for loops. That&#39;s crazy.<br>
&gt;<br>
</span><div><div class="h5">&gt; On Tue, Jun 7, 2016 at 06:20 Vladimir.S via swift-evolution&lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>(mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>)&gt;wrote:<br>
&gt; &gt; My +1 to the proposal and for Charlie&#39;s opinion. I believe `while` in `for`<br>
&gt; &gt; loop would be very handy and helpful in some situations, it is a pair for<br>
&gt; &gt; existed `where`, its meaning is obvious, and its existence can&#39;t depend on<br>
&gt; &gt; existence of any method in collections. I&#39;d like to see a formal proposal<br>
&gt; &gt; for this feature.<br>
&gt; &gt;<br>
&gt; &gt; On 07.06.2016 8:18, Charlie Monroe via swift-evolution wrote:<br>
&gt; &gt; &gt;I strongly disagree.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;Exchanging<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;for result in results where result.value != .Warning while result.value !=<br>
&gt; &gt; &gt;.Error {<br>
&gt; &gt; &gt;/// ...<br>
&gt; &gt; &gt;}<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;for either<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;for result in results.filter({ $0.value != .Warning }).prefix(while: {<br>
&gt; &gt; &gt;$0.value != .Error })) {<br>
&gt; &gt; &gt;/// ...<br>
&gt; &gt; &gt;}<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;or<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;for result in results {<br>
&gt; &gt; &gt;if result.value == .Warning { continue }<br>
&gt; &gt; &gt;if result.value == .Error { break }<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;/// ...<br>
&gt; &gt; &gt;}<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;Seems like an absolute step back. Not to mention filter(_:) doesn&#39;t return<br>
&gt; &gt; &gt;a lazy collection, but will recreate it, while the `where` will do<br>
&gt; &gt; &gt;on-the-fly check.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;&gt;On Jun 7, 2016, at 1:34 AM, Xiaodi Wu via swift-evolution<br>
</div></div>&gt; &gt; &gt;&gt;&lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>(mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>)&lt;mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt;&gt;wrote:<br>
<span class="">&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt;Personally, given this discussion and the one about `where` in if and<br>
&gt; &gt; &gt;&gt;while statements, I would not be opposed to elimination of `where` in<br>
&gt; &gt; &gt;&gt;control statements altogether.<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt;My reasoning would be that words like filter and prefix unambiguously<br>
&gt; &gt; &gt;&gt;indicate what happens to elements of a sequence for which the predicate<br>
&gt; &gt; &gt;&gt;returns false, whereas words like where and while are ambiguous.<br>
&gt; &gt; &gt;&gt;<br>
</span>&gt; &gt; &gt;&gt;On Mon, Jun 6, 2016 at 17:52 Tim Vermeulen&lt;<a href="mailto:tvermeulen@me.com">tvermeulen@me.com</a>(mailto:<a href="mailto:tvermeulen@me.com">tvermeulen@me.com</a>)<br>
<span class="">&gt; &gt; &gt;&gt;&lt;mailto:<a href="mailto:tvermeulen@me.com">tvermeulen@me.com</a>&gt;&gt;wrote:<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt;I didn’t mean we should really get rid of the `where` clause, it’s<br>
&gt; &gt; &gt;&gt;great. I guess the point I was trying to make is that we can use a<br>
&gt; &gt; &gt;&gt;`where` clause with a `for` loop in Swift, despite the existence of<br>
&gt; &gt; &gt;&gt;the `filter` method. So despite `prefix(while:)` in Swift 3, there<br>
&gt; &gt; &gt;&gt;might be room for a `while` clause. I think it makes the code a lot<br>
&gt; &gt; &gt;&gt;more readable, much like how `where` can make a `for` loop a lot more<br>
&gt; &gt; &gt;&gt;readable than using `filter`.<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;The burden of proof for adding new features is different from that<br>
&gt; &gt; &gt;&gt;for taking away existing features.<br>
&gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;If a feature doesn&#39;t yet exist, a successful proposal will show how<br>
&gt; &gt; &gt;&gt;it provides additional and non-trivial utility. If a feature already<br>
&gt; &gt; &gt;&gt;exists, a successful proposal to remove it will show how it is<br>
&gt; &gt; &gt;&gt;harmful to the language or contrary to the direction in which it is<br>
&gt; &gt; &gt;&gt;evolving.<br>
&gt; &gt; &gt;&gt;&gt;<br>
</span>&gt; &gt; &gt;&gt;&gt;On Mon, Jun 6, 2016 at 15:38 Tim Vermeulen&lt;<a href="mailto:tvermeulen@me.com">tvermeulen@me.com</a>(mailto:<a href="mailto:tvermeulen@me.com">tvermeulen@me.com</a>)<br>
<span class="">&gt; &gt; &gt;&gt;&lt;mailto:<a href="mailto:tvermeulen@me.com">tvermeulen@me.com</a>&gt;(mailto:<a href="mailto:tvermeulen@me.com">tvermeulen@me.com</a><br>
&gt; &gt; &gt;&gt;&lt;mailto:<a href="mailto:tvermeulen@me.com">tvermeulen@me.com</a>&gt;)&gt;wrote:<br>
&gt; &gt; &gt;&gt;&gt;&gt;The functionality of the `where` clause in `for` loops also<br>
&gt; &gt; &gt;&gt;already can be mimicked using `filter`. Wouldn’t we have to get ride<br>
&gt; &gt; &gt;&gt;of the `where` clause by that logic?<br>
&gt; &gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;The functionality being asked for here is already accepted for<br>
&gt; &gt; &gt;&gt;inclusion to Swift as a method on Sequence named `prefix(while:)`<br>
&gt; &gt; &gt;&gt;(SE-0045):<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;`for element in array.prefix(while: { someCondition($0) }) { ... }`<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;On Mon, Jun 6, 2016 at 14:31 T.J. Usiyan via<br>
</span>&gt; &gt; &gt;&gt;swift-evolution&lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>(mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>)<br>
<span class="">&gt; &gt; &gt;&gt;&lt;mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt;(mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
&gt; &gt; &gt;&gt;&lt;mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt;)(mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
&gt; &gt; &gt;&gt;&lt;mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt;)&gt;wrote:<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;(As I said, I can live with `while`. I am simply presenting a<br>
&gt; &gt; &gt;&gt;potential point of confusion.)<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;You aren&#39;t evaluating the statements in the loop &#39;while&#39; the<br>
&gt; &gt; &gt;&gt;condition isn&#39;t met. The first time that the condition isn&#39;t met,<br>
&gt; &gt; &gt;&gt;evaluation of the loop stops. I get that this is technically true for<br>
&gt; &gt; &gt;&gt;the `while` construct but I suggest that the only reason that it<br>
&gt; &gt; &gt;&gt;works there is that &#39;stopping the first time that the condition isn&#39;t<br>
&gt; &gt; &gt;&gt;met&#39; *is* the construct. Here, we have a loop that we execute for<br>
&gt; &gt; &gt;&gt;each thing and we&#39;re tacking on/intermingling the `while` construct.<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;On Mon, Jun 6, 2016 at 2:19 PM, Thorsten<br>
</span>&gt; &gt; &gt;&gt;Seitz&lt;<a href="mailto:tseitz42@icloud.com">tseitz42@icloud.com</a>(mailto:<a href="mailto:tseitz42@icloud.com">tseitz42@icloud.com</a>)<br>
<span class="">&gt; &gt; &gt;&gt;&lt;mailto:<a href="mailto:tseitz42@icloud.com">tseitz42@icloud.com</a>&gt;(mailto:<a href="mailto:tseitz42@icloud.com">tseitz42@icloud.com</a><br>
&gt; &gt; &gt;&gt;&lt;mailto:<a href="mailto:tseitz42@icloud.com">tseitz42@icloud.com</a>&gt;)(mailto:<a href="mailto:tseitz42@icloud.com">tseitz42@icloud.com</a><br>
&gt; &gt; &gt;&gt;&lt;mailto:<a href="mailto:tseitz42@icloud.com">tseitz42@icloud.com</a>&gt;)&gt;wrote:<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;Am 06.06.2016 um 19:43 schrieb Tim Vermeulen via<br>
</span>&gt; &gt; &gt;&gt;swift-evolution&lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>(mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>)<br>
<span class="">&gt; &gt; &gt;&gt;&lt;mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt;(mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
&gt; &gt; &gt;&gt;&lt;mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt;)(mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
&gt; &gt; &gt;&gt;&lt;mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt;)&gt;:<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;I also considered `until`, but it would be a bit confusing<br>
&gt; &gt; &gt;&gt;that `where` makes sure a condition is met, while `until` makes sure<br>
&gt; &gt; &gt;&gt;the condition isn’t met. I think `while` makes more sense because it<br>
&gt; &gt; &gt;&gt;corresponds to `break` in the same way that `where` corresponds to<br>
&gt; &gt; &gt;&gt;`continue`.<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;That&#39;s a good argument! The only drawback is that `while` and<br>
&gt; &gt; &gt;&gt;`where` look quite similar at a glance.<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;-Thorsten<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;`while`, to me, actually reads like it should do what<br>
&gt; &gt; &gt;&gt;`where` does.<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;To me, `while` reads like it should stop the loop once the<br>
&gt; &gt; &gt;&gt;condition isn’t met, just like in a while loop.<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;I hadn&#39;t thought about `while` in this regard but wouldn&#39;t<br>
&gt; &gt; &gt;&gt;`until` make more sense? `while`, to me, actually reads like it<br>
&gt; &gt; &gt;&gt;should do what `where` does. In any case, whether it is `while` or<br>
&gt; &gt; &gt;&gt;`where`, this seems like a reasonable feature in my opinion.<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;TJ<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;On Mon, Jun 6, 2016 at 5:15 AM, Tim Vermeulen via<br>
</span>&gt; &gt; &gt;&gt;swift-evolution&lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>(mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>)<br>
<div><div class="h5">&gt; &gt; &gt;&gt;&lt;mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt;(mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
&gt; &gt; &gt;&gt;&lt;mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt;)(mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
&gt; &gt; &gt;&gt;&lt;mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt;)(mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
&gt; &gt; &gt;&gt;&lt;mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt;)&gt;wrote:<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;We can already use a where clause in a for loop like this:<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;for element in array where someCondition(element) {<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;// …<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;}<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;which basically acts like<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;for element in array {<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;guard someCondition(element) else { continue }<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;// …<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;}<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;Sometimes you want to break out of the loop when the<br>
&gt; &gt; &gt;&gt;condition isn’t met instead. I propose a while clause:<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;for element in array while someCondition(element) {<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;// …<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;}<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;which would be syntactic sugar for<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;for element in array {<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;guard someCondition(element) else { break }<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;…<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;}<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;I can see this particularly being useful if we have a<br>
&gt; &gt; &gt;&gt;sorted array and we already know that once the condition isn’t met,<br>
&gt; &gt; &gt;&gt;it won’t be met either for subsequent elements. Another use case<br>
&gt; &gt; &gt;&gt;could be an infinite sequence that we want to cut off somewhere<br>
&gt; &gt; &gt;&gt;(which is simply not possible using a where clause).<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;_______________________________________________<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;swift-evolution mailing list<br>
</div></div>&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>(mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>)<br>
<span class="">&gt; &gt; &gt;&gt;&lt;mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt;(mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
&gt; &gt; &gt;&gt;&lt;mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt;)(mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
&gt; &gt; &gt;&gt;&lt;mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt;)(mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
&gt; &gt; &gt;&gt;&lt;mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt;)<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;_______________________________________________<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;swift-evolution mailing list<br>
</span>&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>(mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>)<br>
<span class="">&gt; &gt; &gt;&gt;&lt;mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt;(mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
&gt; &gt; &gt;&gt;&lt;mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt;)(mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
&gt; &gt; &gt;&gt;&lt;mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt;)<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;_______________________________________________<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;swift-evolution mailing list<br>
</span>&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>(mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>)<br>
<span class="">&gt; &gt; &gt;&gt;&lt;mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt;(mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
&gt; &gt; &gt;&gt;&lt;mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt;)(mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
&gt; &gt; &gt;&gt;&lt;mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt;)<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;&gt;<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;&gt;&gt;_______________________________________________<br>
&gt; &gt; &gt;&gt;&gt;swift-evolution mailing list<br>
</span>&gt; &gt; &gt;&gt;&gt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>(mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>)&lt;mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt;<br>
<span class="">&gt; &gt; &gt;&gt;&gt;<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
&gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt;_______________________________________________<br>
&gt; &gt; &gt;&gt;swift-evolution mailing list<br>
</span>&gt; &gt; &gt;&gt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>(mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>)&lt;mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt;<br>
<span class="">&gt; &gt; &gt;&gt;<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;_______________________________________________<br>
&gt; &gt; &gt;swift-evolution mailing list<br>
</span>&gt; &gt; &gt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>(mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>)<br>
<span class="">&gt; &gt; &gt;<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
&gt; &gt; &gt;<br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; swift-evolution mailing list<br>
</span>&gt; &gt; <a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>(mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>)<br>
&gt; &gt; <a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
&gt;<br>
&gt;<br>
&gt; </blockquote></div><br></div></div>