<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=""><div class="">The thing I like about “if let x = y” over all these alternatives — either shorthand like “ifsome” or Ceylon/Kotlin-like expression analysis— is that it generalizes to y being an arbitrary expression.</div><div class=""><br class=""></div><div class="">No special case needed for this:</div><div class=""><br class=""></div><div class=""><div style="margin: 0px; font-size: 10.5px; line-height: normal; font-family: Menlo;" class="">&nbsp; &nbsp;&nbsp;<span style="font-variant-ligatures: no-common-ligatures; color: #323e7d" class="">if</span> <span style="font-variant-ligatures: no-common-ligatures; color: #323e7d" class="">let</span> x = foo.bar?.baz</div><div style="margin: 0px; font-size: 10.5px; line-height: normal; font-family: Menlo; min-height: 12px;" class=""><span style="font-size: 10.5px;" class=""><br class=""></span></div><div class="">…or this:</div><div class=""><br class=""></div><div style="margin: 0px; font-size: 10.5px; line-height: normal; font-family: Menlo; min-height: 12px;" class=""><span style="font-size: 10.5px;" class="">&nbsp; &nbsp;&nbsp;</span><span style="font-size: 10.5px; color: rgb(50, 62, 125);" class="">if</span><span style="font-size: 10.5px;" class=""> </span><span style="font-size: 10.5px; color: rgb(50, 62, 125);" class="">let</span><span style="font-size: 10.5px;" class=""> x = y </span><span style="font-size: 10.5px; color: rgb(50, 62, 125);" class="">as</span><span style="font-size: 10.5px;" class="">? SomeType</span></div></div><div class=""><br class=""></div><div class="">They just fall out naturally.</div><div class=""><br class=""></div><div class="">P</div><br class=""><div><blockquote type="cite" class=""><div class="">On Feb 1, 2016, at 5:04 PM, Howard Lovatt 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=""><span style="font-family: HelveticaNeue; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">There is a language, Nice (related to Java), that does:</span><div style="font-family: HelveticaNeue; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class=""></div><div style="font-family: HelveticaNeue; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">&nbsp; &nbsp; if x != nil {</div><div style="font-family: HelveticaNeue; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">&nbsp; &nbsp; &nbsp; &nbsp; // x is unwrapped</div><div style="font-family: HelveticaNeue; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">&nbsp; &nbsp; }</div><div style="font-family: HelveticaNeue; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class=""></div><div style="font-family: HelveticaNeue; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">As Andrew has already suggested as a possibility. However I am not sure that it is a great idea because why should this particular if statement have 'magic'?</div><div style="font-family: HelveticaNeue; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class=""></div><div style="font-family: HelveticaNeue; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">How about:</div><div style="font-family: HelveticaNeue; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class=""></div><div style="font-family: HelveticaNeue; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">&nbsp; &nbsp;&nbsp;<font size="2" class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">&nbsp;ifsome x&nbsp;{ // Equivalent to current `if let x = x`, note `ifsome` is one word</span></font><div class=""><font size="2" class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">&nbsp; &nbsp; &nbsp; &nbsp; // x is unwrapped</span></font></div><div class=""><font size="2" class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">&nbsp; &nbsp;&nbsp;}</span></font></div><div class=""><font size="2" class=""><span style="background-color: rgba(255, 255, 255, 0);" class=""><br class=""></span></font></div><div class=""><font size="2" class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">This doesn't use `bind` which has some baggage, it doesn't use `var` or `let` which have other meanings, `ifsome` is an unusual word and hence unlikely to be useful as a name, and it is clear it is not a normal `if` statement.</span></font></div><div class=""><font size="2" class=""><span style="background-color: rgba(255, 255, 255, 0);" class=""><br class=""></span></font></div><div class=""><font size="2" class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">Don't change `case` clauses, they are not confusing, they do introduce a new variable and hence `let` and `var` are appropriate.&nbsp;</span></font></div><br class="">On Tuesday, 2 February 2016, Andrew Bennett via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:<br class=""><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;"><div dir="ltr" class="">I'm -1 as stated, I don't think the proposed change&nbsp;adds any clarity, if anything it adds more things to learn.<div class=""><br class=""></div><div class="">I think you can achieve some of your goals with a linter. You need to consider how this works with pattern matching. It would remove the ability to mutate the value type in a switch without a reassignment.<br class=""><div class=""><div class=""><br class=""></div><div class="">I'm closer to liking it if it removes nothing from the language and adds something like this:</div><div class=""><br class=""></div><div class="">var x: Int?</div><div class="">let y: Int?</div><div class="">if bind x, y where x == y {</div><div class="">&nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span>x = 4 // changes the x outside this scope</div><div class="">&nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span>y = 5 // compile time error</div><div class="">&nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span>x = nil // compile time error</div><div class="">}</div><div class=""><br class=""></div><div class="">I think that makes bind make more sense, and less surprising. However it doesn't clarify anything about it no longer being optional.</div><div class=""><br class=""></div><div class="">It would be nice if the following worked, although I it has its own issues with surprises:</div><div class=""><br class=""></div><div class="">let x: Int? = 123</div><div class="">if x != nil {</div><div class="">&nbsp; &nbsp;... // x is non-optional here</div><div class="">}</div><div class="">assert(x != nil)</div><div class="">// x is non-optional here<br class=""></div><div class=""><br class=""></div><div class="">var y: Int? = 456<br class=""></div><div class="">while y != nil {</div><div class="">&nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span>// y is non-optional here</div><div class="">}</div><div class="">// y is optional here</div><div class=""><br class=""></div><div class=""><div class="">On Tuesday, 2 February 2016, T.J. Usiyan via swift-evolution &lt;<a target="_blank" class="">swift-evolution@swift.org</a>&gt; wrote:<br class=""><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;"><div dir="ltr" class="">I don't think that the keyword is silly but this is a good point. I forgot that this application of the `?` postfix exists.</div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Mon, Feb 1, 2016 at 2:56 PM, Tyler Cloutier via swift-evolution<span class="Apple-converted-space">&nbsp;</span><span dir="ltr" class="">&lt;<a class="">swift-evolution@swift.org</a>&gt;</span><span class="Apple-converted-space">&nbsp;</span>wrote:<br class=""><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;"><div style="word-wrap: break-word;" class="">The bind or exists keywords seem sort of silly to me. There is already syntax for binding optionals:<div class=""><br class=""></div><div class="">if x? {</div><div class=""><span style="white-space: pre-wrap;" class="">        </span>foo(x) // x type narrowed after binding.</div><div class="">}<br class=""><div class=""><br class=""></div><div class="">Tyler</div><div class=""><div class=""><div class=""><br class=""></div><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Feb 1, 2016, at 11:35 AM, Howard Lovatt via swift-evolution &lt;<a class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class=""><div class="">I like this proposal. I also think that either bind or exists could be the keyword. I would suggest that both forms of syntax should be allowed, e.g.:<div class=""><br class=""></div><div class="">&nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span>if bind x { /* x is non-nil,&nbsp;unwrapped, and hides original x inside if statement&nbsp;<span class=""></span>*/ }</div><div class="">&nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span>if bind x = object.property&nbsp;<font size="2" class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">{ /* x is non-nil and unwrapped */ }</span></font><br class=""><br class="">On Tuesday, 2 February 2016, Dave via swift-evolution &lt;<a class="">swift-evolution@swift.org</a>&gt; wrote:<br class=""><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;"><div style="word-wrap: break-word;" class="">I<span class="Apple-converted-space">&nbsp;</span><i class="">think</i>&nbsp;it’d be _<div class=""><br class=""></div><div class="">You could use it to test if the return value is non-nil, but you’d have to revert to “if let x = …” to actually use the results.</div><div class=""><br class=""></div><div class="">I think.</div><div class=""><br class=""><div class="">- Dave Sweeris</div><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Feb 1, 2016, at 11:22, T.J. Usiyan via swift-evolution &lt;<a class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class=""><div class=""><div dir="ltr" class=""><div class="">This is interesting. What name is created by&nbsp;</div><div class=""><br class=""></div><div class=""><div style="font-size: 13px;" class=""><font face="Menlo" class="">&nbsp;<span class="Apple-converted-space">&nbsp;</span>if bind foo.somethingReturningAnOptional {</font></div><div style="font-size: 13px;" class=""><font face="Menlo" class="">&nbsp; &nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span>// ???</font></div><div style="font-size: 13px;" class=""><font face="Menlo" class="">&nbsp;<span class="Apple-converted-space">&nbsp;</span>}</font></div></div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Mon, Feb 1, 2016 at 2:18 PM, Erica Sadun via swift-evolution<span class="Apple-converted-space">&nbsp;</span><span dir="ltr" class="">&lt;<a class="">swift-evolution@swift.org</a>&gt;</span>wrote:<br class=""><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;"><div style="word-wrap: break-word;" class="">Joe says "<span style="font-family: Palatino-Roman;" class="">If you all are serious about this, I think you should start a new thread about it."&nbsp;</span><div class="">I think it's worth a serious discussion just so it can be evaluated and either adopted or discarded</div><div class="">and dropped forever. Here goes.</div><div class=""><br class=""></div><div class="">INTRO</div><div class=""><br class=""><div class="">The<span class="Apple-converted-space">&nbsp;</span><font face="Menlo" class="">if let x = x {...}</font><span class="Apple-converted-space">&nbsp;</span>and<span class="Apple-converted-space">&nbsp;</span><font face="Menlo" class="">guard let x = x else {...}</font><span class="Apple-converted-space">&nbsp;</span>constructs do something with&nbsp;<font face="Menlo" class="">let</font><span class="Apple-converted-space">&nbsp;</span>(and&nbsp;<font face="Menlo" class="">var</font>) that's&nbsp;</div><div class="">fundamentally different from<span class="Apple-converted-space">&nbsp;</span><font face="Menlo" class="">let</font><span class="Apple-converted-space">&nbsp;</span>(and<span class="Apple-converted-space">&nbsp;</span><font face="Menlo" class="">var</font>) elsewhere in the language.&nbsp; The same keywords are used to conditionally unwrap</div><div class="">and bind an item, not just shadow that item's current value.</div><div class=""><br class=""></div><div class="">Introducing a new&nbsp;<font face="Menlo" class="">bind</font>&nbsp;keyword to indicate unwrapping and binding would disambiguate these uses.</div><div class=""><br class=""></div><div class="">DETAIL DESIGN:</div><div class=""><br class=""></div><div class="">Jacob Bandes-Storch offers two common use-cases. I prefer his "if bind foo" to my original "if bind foo = foo":</div><div class=""><br class=""></div><div class=""><div class=""><font face="Menlo" class="">&nbsp;<span class="Apple-converted-space">&nbsp;</span>if bind foo {</font></div><div class=""><font face="Menlo" class="">&nbsp; &nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span>// foo is non-optional in here</font></div><div class=""><font face="Menlo" class="">&nbsp;<span class="Apple-converted-space">&nbsp;</span>}</font></div><div class=""><font face="Menlo" class=""><br class=""></font></div><div class=""><font face="Menlo" class="">&nbsp;<span class="Apple-converted-space">&nbsp;</span>somethingAsync { [weak self] in</font></div><div class=""><font face="Menlo" class="">&nbsp; &nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span>guard bind self else { return }</font></div><div class=""><font face="Menlo" class="">&nbsp; &nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span>// ...</font></div><div class=""><font face="Menlo" class="">&nbsp;<span class="Apple-converted-space">&nbsp;</span>}</font></div></div><div class=""><br class=""></div></div><div class="">JBS's approach offers my original "bind" keyword to unwrap and shadow bind, but also provides a way to&nbsp;</div><div class="">strongly bind a weak reference to self, which (presumably) would allow self semantics in the remaining</div><div class="">lifetime of that scope.</div><div class=""><br class=""></div><div class="">ALTERNATIVE PROPOSALS:</div><div class=""><br class=""></div><div class="">Tino Heth proposes a second use-case one with different semantics. This case, it seems to make an</div><div class="">alias rather than using binding for shadowing:</div><div class=""><br class=""></div><div class=""><font face="Menlo" class="">bind x = a.property.with.a.long.path<br class="">print x &nbsp;// 42<br class="">print(a.property.with.a.long.path == 42) =&gt; true</font></div><div class=""><span style="font-family: Palatino-Roman;" class=""><br class=""></span></div><div class=""><span style="font-family: Palatino-Roman;" class="">presumably this means:</span></div><div class=""><span style="font-family: Palatino-Roman;" class=""><br class=""></span></div><div class=""><font face="Menlo" class="">x += 1</font></div><div class=""><font face="Menlo" class="">print(a.property.with.a.long.path) &nbsp;// 43</font></div><div class=""><font face="Palatino-Roman" class=""><br class=""></font></div><div class=""><font face="Palatino-Roman" class="">DISCUSSION</font></div><div class=""><font face="Palatino-Roman" class=""><br class=""></font></div><div class=""><font face="Palatino-Roman" class="">I'm throwing these both out there. I have nothing to really say about Tino's but I do think my and Jacob's&nbsp;</font></div><div class=""><font face="Palatino-Roman" class="">proposal has the advantages of:</font></div><div class=""><font face="Palatino-Roman" class=""><br class=""></font></div><div class=""><font face="Palatino-Roman" class="">* Simplifying an mildly complex and potentially misleading statement&nbsp;</font></div><div class=""><font face="Palatino-Roman" class="">* Creating a deliberate and controlled rather than accidental shadowing style</font></div><div class=""><font face="Palatino-Roman" class=""><br class=""></font></div><div class=""><font face="Palatino-Roman" class="">Have at it.</font></div><span class=""><font color="#888888" class=""><div class=""><font face="Palatino-Roman" class=""><br class=""></font></div><div class=""><font face="Palatino-Roman" class="">-- Erica</font></div><div class=""><font face="Palatino-Roman" class=""><br class=""></font></div><div class=""><font face="Palatino-Roman" class=""><br class=""></font></div></font></span></div><br class="">_______________________________________________<br class="">swift-evolution mailing list<br class=""><a class="">swift-evolution@swift.org</a><br class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""><br class=""></blockquote></div><br class=""></div>_______________________________________________<br class="">swift-evolution mailing list<br class=""><a class="">swift-evolution@swift.org</a><br class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" target="_blank" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""></div></blockquote></div><br class=""></div></div></blockquote></div><br class=""><br class="">--<span class="Apple-converted-space">&nbsp;</span><br class="">&nbsp;<span class="Apple-converted-space">&nbsp;</span>-- Howard.<br class=""><br class="">_______________________________________________<br class="">swift-evolution mailing list<br class=""><a class="">swift-evolution@swift.org</a><br class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" target="_blank" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""></div></blockquote></div><br class=""></div></div></div></div></div><br class="">_______________________________________________<br class="">swift-evolution mailing list<br class=""><a class="">swift-evolution@swift.org</a><br class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""><br class=""></blockquote></div><br class=""></div></blockquote></div></div></div></div></div></blockquote></div><br style="font-family: HelveticaNeue; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: HelveticaNeue; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: HelveticaNeue; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">--<span class="Apple-converted-space">&nbsp;</span></span><br style="font-family: HelveticaNeue; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: HelveticaNeue; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">&nbsp; -- Howard.</span><br style="font-family: HelveticaNeue; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: HelveticaNeue; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: HelveticaNeue; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">_______________________________________________</span><br style="font-family: HelveticaNeue; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: HelveticaNeue; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">swift-evolution mailing list</span><br style="font-family: HelveticaNeue; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><a href="mailto:swift-evolution@swift.org" style="font-family: HelveticaNeue; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">swift-evolution@swift.org</a><br style="font-family: HelveticaNeue; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" style="font-family: HelveticaNeue; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a></div></blockquote></div><br class=""></body></html>