<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="">There has been a lot of discussion around this design decision. Personally, I’m with you: this should be allowed. Protocol extensions should be defaults, nothing more.</div><div class=""><br class=""></div><div class="">The rationale mentioned in Swift Evolution for discouraging this behaviour tends to be that if you conform to the protocol, you should conform and adhere to all its extensions as well, and that not doing so in the same way will be inconsistent.</div><div class=""><br class=""></div><div class="">I personally think this comes to the Type-first vs Protocol-first approach and I think instances of types should have the final say in the behaviour of the operation. While this would perform slightly worse, and could potentially be unsafe, I think it is consistent with the fact that not all implementers of a protocol behave exactly the same; indeed, if they did, we’d only have one type per protocol, in which case, what is the point of a protocol at all? Just do it with types.</div><div class=""><br class=""></div><div class="">I love POP and protocol extensions but I’m tempered by the fact that not all types implement protocols in the same ways, and we can’t predict ahead of time where those differences will be needed.</div><div class=""><br class=""></div><br class=""><div><blockquote type="cite" class=""><div class="">On 10 Mar 2017, at 12:48 am, Adrian Zubarev 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=""><div class="bloop_markdown" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: 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; background-color: rgb(254, 254, 254);"><p style="margin: 15px 0px; -webkit-margin-before: 0px;" class="">My question is why cannot the<span class="Apple-converted-space">&nbsp;</span><code style="font-family: Menlo, Consolas, 'Liberation Mono', Courier, monospace; font-size: 10pt; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; background-color: rgb(248, 248, 248); color: inherit; border: 1px solid rgb(234, 234, 234); margin: 0px 2px; padding: 0px 5px; word-break: normal; word-wrap: normal; -webkit-margin-before: 0px;" class="">Base</code><span class="Apple-converted-space">&nbsp;</span>type override the default implementation? I might want to override it, by calling the default implementation and modifying the result for my needs.</p><p style="margin: 15px 0px;" class="">Something like that:</p><pre style="margin: 15px 0px; font-family: Menlo, Consolas, 'Liberation Mono', Courier, monospace; font-size: 10pt; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; background-color: rgb(248, 248, 248); color: inherit; border: 1px solid rgb(204, 204, 204); overflow: auto; padding: 4px 8px; word-break: normal; word-wrap: normal;" class=""><code class="swift" style="font-family: Menlo, Consolas, 'Liberation Mono', Courier, monospace; font-size: 10pt; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; background-color: rgb(248, 248, 248); color: inherit; border: 0px; margin: 0px; padding: 0px; word-break: normal; word-wrap: normal; -webkit-margin-before: 0px;">protocol P {
    func foo() -&gt; Int
}

extension P {
    func foo() -&gt; Int {
        return 42
    }
}

class Base : P {
    override func foo() -&gt; {
         
        return default.foo() * 100
    }
}
</code></pre><p style="margin: 15px 0px;" class="">The example is kept simple.</p><div style="margin: 15px 0px;" class=""><br class="webkit-block-placeholder"></div></div><div class="bloop_original_html" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: 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; background-color: rgb(254, 254, 254);"><div id="bloop_customfont" style="font-family: Helvetica, Arial; font-size: 13px; margin: 0px;" class=""><br class=""></div><br class=""><div id="bloop_sign_1489067113181481984" class="bloop_sign"><div style="font-family: helvetica, arial; font-size: 13px;" class="">--&nbsp;<br class="">Adrian Zubarev<br class="">Sent with Airmail</div></div><br class=""><p class="airmail_on" style="margin: 15px 0px;">Am 9. März 2017 um 14:37:08, Matthew Johnson via swift-evolution (<a href="mailto:swift-evolution@swift.org" style="color: rgb(65, 131, 196); background-color: inherit; text-decoration: none;" class="">swift-evolution@swift.org</a>) schrieb:</p><blockquote type="cite" class="clean_bq" style="margin: 15px 0px;"><span style="margin-top: 0px; margin-bottom: 0px;" class=""><div dir="auto" class=""><div class=""></div><div class=""><div class=""><br class=""><br class="">Sent from my iPad</div><div class=""><br class="">On Mar 9, 2017, at 2:23 AM, Slava Pestov via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" style="color: rgb(65, 131, 196); background-color: inherit; text-decoration: none;" class="">swift-evolution@swift.org</a>&gt; wrote:<br class=""><br class=""></div><blockquote type="cite" style="margin: 15px 0px;" class=""><div style="margin-top: 0px; margin-bottom: 0px;" class="">I think the fact that the type checker permits ‘final’ to appear inside protocol extensions is an oversight and this probably does not even warrant a proposal. I don’t think allowing this was ever part of the conceptual model of protocol extensions at any point in time (if you recall they were introduced ‘recently’, in Swift 2). If someone put together a PR which makes ‘final’ in protocol extensions an error in Swift 4 mode (and a warning in 3), I would merge it.<div class=""><br class=""></div><div class="">FWIW that there is one restriction around the direct dispatch here we want to lift, but it’s not related to this proposal.</div><div class=""><br class=""></div><div class="">If you have a base class conforming to a protocol using default requirements, eg</div><div class=""><br class=""></div><div class="">&nbsp; protocol Proto { func f() }</div><div class="">&nbsp; extension Proto { func f() { } }</div><div class=""><br class=""></div><div class="">&nbsp; class Base : Proto {}</div><div class=""><br class=""></div><div class="">Currently the witness table for Base : Proto directly references the extension method Proto.f.</div><div class=""><br class=""></div><div class="">We want to allow this, at least inside the module:</div><div class=""><br class=""></div><div class="">class Derived {</div><div class="">&nbsp; override func f() {} // does not work currently</div><div class="">}</div><div class=""><br class=""></div><div class="">This will mean that ‘Proto.f’ will appear in the vtable of ‘Base’, pointing at the extension method. The conformance will dispatch through the vtable instead of directly calling the extension method.</div></div></blockquote><div class=""><br class=""></div><div class="">Would this allow the override to call `Proto.f` through super?</div><br class=""><blockquote type="cite" style="margin: 15px 0px;" class=""><div style="margin-top: 0px; margin-bottom: 0px;" class=""><div class=""><div class=""><br class=""></div><div class="">Slava<div class=""><br class=""><div class=""><blockquote type="cite" class="" style="margin: 15px 0px;"><div class="" style="margin-top: 0px;">On Mar 7, 2017, at 7:23 PM, Brian King via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="" style="color: rgb(65, 131, 196); background-color: inherit; text-decoration: none;">swift-evolution@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class="" style="margin-bottom: 0px;"><div dir="ltr" class=""><div class="" style="font-size: 12.8px;">Hey Folks,&nbsp;<span class="" style="font-size: 12.8px;">This draft proposal addresses</span><span class="Apple-converted-space">&nbsp;</span><span class="" style="font-size: 12.8px;">starter bug SR-1762.</span><span class="" style="font-size: 12.8px;">&nbsp;I believe this is in scope for Swift 4 since it impacts source compatibility</span><span class="" style="font-size: 12.8px;">. It's not a very exciting proposal, but I think it will help make Swift a little more consistent.</span></div><div class="" style="font-size: 12.8px;"><span class="" style="font-size: 12.8px;"><br class=""></span></div><div class="" style="font-size: 12.8px;"><span class="" style="font-size: 12.8px;"><a href="https://gist.github.com/KingOfBrian/6f20c566114ac0ef54c8092d80e54ee7" class="" style="color: rgb(65, 131, 196); background-color: inherit; text-decoration: none;">https://gist.github.com/KingOfBrian/6f20c566114ac0ef54c8092d80e54ee7</a></span><br class=""></div><div class="" style="font-size: 12.8px;"><a href="https://bugs.swift.org/browse/SR-1762" class="" style="color: rgb(65, 131, 196); background-color: inherit; text-decoration: none;">https://bugs.swift.org/browse/SR-1762</a></div><div class="" style="font-size: 12.8px;"><br class=""></div><div class="" style="font-size: 12.8px;">Thanks</div><div class="" style="font-size: 12.8px;"><br class=""></div><div class="" style="font-size: 12.8px;">Brian</div><div class="" style="font-size: 12.8px;"><h2 class="" style="font-weight: bold; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(234, 236, 239); font-size: 24px; font-family: -apple-system, blinkmacsystemfont, 'segoe ui', helvetica, arial, sans-serif, 'apple color emoji', 'segoe ui emoji', 'segoe ui symbol'; box-sizing: border-box; margin-top: 24px; margin-bottom: 16px; line-height: 1.25; padding-bottom: 0.3em;">Introduction</h2><h2 class="" style="font-weight: bold; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(234, 236, 239); font-size: 24px; font-family: -apple-system, blinkmacsystemfont, 'segoe ui', helvetica, arial, sans-serif, 'apple color emoji', 'segoe ui emoji', 'segoe ui symbol'; box-sizing: border-box; margin-top: 24px; margin-bottom: 16px; line-height: 1.25; padding-bottom: 0.3em;"></h2><p class="" style="margin: 0px 0px 16px; font-size: 16px; font-weight: normal; box-sizing: border-box;">This proposal suggests removing support for the&nbsp;<code class="" style="font-family: sfmono-regular, consolas, 'liberation mono', menlo, courier, monospace; font-size: 13.6px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; background-color: rgba(27, 31, 35, 0.0470588); color: inherit; border: 1px solid rgb(234, 234, 234); margin: 0px; padding: 0.2em 0px; word-break: normal; word-wrap: normal; box-sizing: border-box;">final</code>&nbsp;keyword when declaring a function in a protocol extension. The presence of the&nbsp;<code class="" style="font-family: sfmono-regular, consolas, 'liberation mono', menlo, courier, monospace; font-size: 13.6px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; background-color: rgba(27, 31, 35, 0.0470588); color: inherit; border: 1px solid rgb(234, 234, 234); margin: 0px; padding: 0.2em 0px; word-break: normal; word-wrap: normal; box-sizing: border-box;">final</code>&nbsp;keyword does not currently generate an error message, and it does not actually modify the dispatch behavior in any way.</p><h2 class="" style="font-weight: bold; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(234, 236, 239); font-size: 24px; font-family: -apple-system, blinkmacsystemfont, 'segoe ui', helvetica, arial, sans-serif, 'apple color emoji', 'segoe ui emoji', 'segoe ui symbol'; box-sizing: border-box; margin-top: 24px; margin-bottom: 16px; line-height: 1.25; padding-bottom: 0.3em;"><a id="gmail-user-content-motivation" class="gmail-anchor" href="https://gist.github.com/KingOfBrian/6f20c566114ac0ef54c8092d80e54ee7#motivation" style="color: rgb(3, 102, 214); background-color: transparent; text-decoration: none; box-sizing: border-box; float: left; padding-right: 4px; line-height: 1;"></a>Motivation</h2><h2 class="" style="font-weight: bold; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(234, 236, 239); font-size: 24px; font-family: -apple-system, blinkmacsystemfont, 'segoe ui', helvetica, arial, sans-serif, 'apple color emoji', 'segoe ui emoji', 'segoe ui symbol'; box-sizing: border-box; margin-top: 24px; margin-bottom: 16px; line-height: 1.25; padding-bottom: 0.3em;"></h2><p class="" style="margin: 0px 0px 16px; font-size: 16px; font-weight: normal; box-sizing: border-box;">In the original protocol model of Swift, a developer could use the&nbsp;<code class="" style="font-family: sfmono-regular, consolas, 'liberation mono', menlo, courier, monospace; font-size: 13.6px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; background-color: rgba(27, 31, 35, 0.0470588); color: inherit; border: 1px solid rgb(234, 234, 234); margin: 0px; padding: 0.2em 0px; word-break: normal; word-wrap: normal; box-sizing: border-box;">final</code>&nbsp;keyword when declaring a function in a protocol extension to ensure the function could not be overridden. This keyword has no use in Swift's current protocol model, since functions in protocol extensions can not be overridden and will always use direct dispatch.</p><h2 class="" style="font-weight: bold; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(234, 236, 239); font-size: 24px; font-family: -apple-system, blinkmacsystemfont, 'segoe ui', helvetica, arial, sans-serif, 'apple color emoji', 'segoe ui emoji', 'segoe ui symbol'; box-sizing: border-box; margin-top: 24px; margin-bottom: 16px; line-height: 1.25; padding-bottom: 0.3em;"><a id="gmail-user-content-detailed-design" class="gmail-anchor" href="https://gist.github.com/KingOfBrian/6f20c566114ac0ef54c8092d80e54ee7#detailed-design" style="color: rgb(3, 102, 214); background-color: transparent; text-decoration: none; box-sizing: border-box; float: left; padding-right: 4px; line-height: 1;"></a>Detailed design</h2><h2 class="" style="font-weight: bold; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(234, 236, 239); font-size: 24px; font-family: -apple-system, blinkmacsystemfont, 'segoe ui', helvetica, arial, sans-serif, 'apple color emoji', 'segoe ui emoji', 'segoe ui symbol'; box-sizing: border-box; margin-top: 24px; margin-bottom: 16px; line-height: 1.25; padding-bottom: 0.3em;"></h2><p class="" style="margin: 0px 0px 16px; font-size: 16px; font-weight: normal; box-sizing: border-box;">The compiler should generate an error or warning when the&nbsp;<code class="" style="font-family: sfmono-regular, consolas, 'liberation mono', menlo, courier, monospace; font-size: 13.6px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; background-color: rgba(27, 31, 35, 0.0470588); color: inherit; border: 1px solid rgb(234, 234, 234); margin: 0px; padding: 0.2em 0px; word-break: normal; word-wrap: normal; box-sizing: border-box;">final</code>&nbsp;keyword is used on a function declaration inside of a protocol extension. This is consistent with the use of&nbsp;<code class="" style="font-family: sfmono-regular, consolas, 'liberation mono', menlo, courier, monospace; font-size: 13.6px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; background-color: rgba(27, 31, 35, 0.0470588); color: inherit; border: 1px solid rgb(234, 234, 234); margin: 0px; padding: 0.2em 0px; word-break: normal; word-wrap: normal; box-sizing: border-box;">final</code>&nbsp;in structs and enumerations.</p><h2 class="" style="font-weight: bold; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(234, 236, 239); font-size: 24px; font-family: -apple-system, blinkmacsystemfont, 'segoe ui', helvetica, arial, sans-serif, 'apple color emoji', 'segoe ui emoji', 'segoe ui symbol'; box-sizing: border-box; margin-top: 24px; margin-bottom: 16px; line-height: 1.25; padding-bottom: 0.3em;"><a id="gmail-user-content-source-compatibility" class="gmail-anchor" href="https://gist.github.com/KingOfBrian/6f20c566114ac0ef54c8092d80e54ee7#source-compatibility" style="color: rgb(3, 102, 214); background-color: transparent; text-decoration: none; box-sizing: border-box; float: left; padding-right: 4px; line-height: 1;"></a>Source compatibility</h2><h2 class="" style="font-weight: bold; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(234, 236, 239); font-size: 24px; font-family: -apple-system, blinkmacsystemfont, 'segoe ui', helvetica, arial, sans-serif, 'apple color emoji', 'segoe ui emoji', 'segoe ui symbol'; box-sizing: border-box; margin-top: 24px; margin-bottom: 16px; line-height: 1.25; padding-bottom: 0.3em;"></h2><p class="" style="margin: 0px 0px 16px; font-size: 16px; font-weight: normal; box-sizing: border-box;">This change will impact source compatibility. To maintain compatibility with Swift 3, a warning will be generated in Swift 3 mode instead of an error message.</p><h2 class="" style="font-weight: bold; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(234, 236, 239); font-size: 24px; font-family: -apple-system, blinkmacsystemfont, 'segoe ui', helvetica, arial, sans-serif, 'apple color emoji', 'segoe ui emoji', 'segoe ui symbol'; box-sizing: border-box; margin-top: 24px; margin-bottom: 16px; line-height: 1.25; padding-bottom: 0.3em;"><a id="gmail-user-content-effect-on-abi-stability" class="gmail-anchor" href="https://gist.github.com/KingOfBrian/6f20c566114ac0ef54c8092d80e54ee7#effect-on-abi-stability" style="color: rgb(3, 102, 214); background-color: transparent; text-decoration: none; box-sizing: border-box; float: left; padding-right: 4px; line-height: 1;"></a>Effect on ABI stability</h2><h2 class="" style="font-weight: bold; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(234, 236, 239); font-size: 24px; font-family: -apple-system, blinkmacsystemfont, 'segoe ui', helvetica, arial, sans-serif, 'apple color emoji', 'segoe ui emoji', 'segoe ui symbol'; box-sizing: border-box; margin-top: 24px; margin-bottom: 16px; line-height: 1.25; padding-bottom: 0.3em;"></h2><p class="" style="margin: 0px 0px 16px; font-size: 16px; font-weight: normal; box-sizing: border-box;">This has no effect on ABI stability</p><h2 class="" style="font-weight: bold; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(234, 236, 239); font-size: 24px; font-family: -apple-system, blinkmacsystemfont, 'segoe ui', helvetica, arial, sans-serif, 'apple color emoji', 'segoe ui emoji', 'segoe ui symbol'; box-sizing: border-box; margin-top: 24px; margin-bottom: 16px; line-height: 1.25; padding-bottom: 0.3em;"><a id="gmail-user-content-effect-on-api-resilience" class="gmail-anchor" href="https://gist.github.com/KingOfBrian/6f20c566114ac0ef54c8092d80e54ee7#effect-on-api-resilience" style="color: rgb(3, 102, 214); background-color: transparent; text-decoration: none; box-sizing: border-box; float: left; padding-right: 4px; line-height: 1;"></a>Effect on API resilience</h2><h2 class="" style="font-weight: bold; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(234, 236, 239); font-size: 24px; font-family: -apple-system, blinkmacsystemfont, 'segoe ui', helvetica, arial, sans-serif, 'apple color emoji', 'segoe ui emoji', 'segoe ui symbol'; box-sizing: border-box; margin-top: 24px; margin-bottom: 16px; line-height: 1.25; padding-bottom: 0.3em;"></h2><p class="" style="margin: 0px 0px 16px; font-size: 16px; font-weight: normal; box-sizing: border-box;">This has no effect on API resilience</p><h2 class="" style="font-weight: bold; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(234, 236, 239); font-size: 24px; font-family: -apple-system, blinkmacsystemfont, 'segoe ui', helvetica, arial, sans-serif, 'apple color emoji', 'segoe ui emoji', 'segoe ui symbol'; box-sizing: border-box; margin-top: 24px; margin-bottom: 16px; line-height: 1.25; padding-bottom: 0.3em;"><a id="gmail-user-content-alternatives-considered" class="gmail-anchor" href="https://gist.github.com/KingOfBrian/6f20c566114ac0ef54c8092d80e54ee7#alternatives-considered" style="color: rgb(3, 102, 214); background-color: transparent; text-decoration: none; box-sizing: border-box; float: left; padding-right: 4px; line-height: 1;"></a>Alternatives considered</h2><div class="" style="font-size: 16px; font-weight: normal; box-sizing: border-box; margin-top: 0px; margin-bottom: 0px;"><h2 class="" style="font-weight: bold; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(234, 236, 239); font-size: 24px; font-family: -apple-system, blinkmacsystemfont, 'segoe ui', helvetica, arial, sans-serif, 'apple color emoji', 'segoe ui emoji', 'segoe ui symbol'; box-sizing: border-box; margin-top: 24px; margin-bottom: 16px; line-height: 1.25; padding-bottom: 0.3em;">The only alternative would be to not fix this bug</h2></div></div></div>_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="" style="color: rgb(65, 131, 196); background-color: inherit; text-decoration: none;">swift-evolution@swift.org</a><br class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" style="color: rgb(65, 131, 196); background-color: inherit; text-decoration: none;" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""></div></blockquote></div><br class=""></div></div></div></div></blockquote><blockquote type="cite" style="margin: 15px 0px;" class=""><div style="margin-top: 0px; margin-bottom: 0px;" class=""><span class="">_______________________________________________</span><br class=""><span class="">swift-evolution mailing list</span><br class=""><span class=""><a href="mailto:swift-evolution@swift.org" style="color: rgb(65, 131, 196); background-color: inherit; text-decoration: none;" class="">swift-evolution@swift.org</a></span><br class=""><span class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" style="color: rgb(65, 131, 196); background-color: inherit; text-decoration: none;" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a></span><br class=""></div></blockquote>_______________________________________________<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></div></span></blockquote></div><div class="bloop_markdown" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: 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; background-color: rgb(254, 254, 254);"><div style="margin: 15px 0px; -webkit-margin-before: 0px;" class=""><br class="webkit-block-placeholder"></div></div><span style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: 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; background-color: rgb(254, 254, 254); float: none; display: inline !important;" class="">_______________________________________________</span><br style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: 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; background-color: rgb(254, 254, 254);" class=""><span style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: 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; background-color: rgb(254, 254, 254); float: none; display: inline !important;" class="">swift-evolution mailing list</span><br style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: 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; background-color: rgb(254, 254, 254);" class=""><a href="mailto:swift-evolution@swift.org" style="color: rgb(65, 131, 196); background-color: rgb(254, 254, 254); text-decoration: none; font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: 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-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">swift-evolution@swift.org</a><br style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: 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; background-color: rgb(254, 254, 254);" class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" style="color: rgb(65, 131, 196); background-color: rgb(254, 254, 254); text-decoration: none; font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: 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-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: 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; background-color: rgb(254, 254, 254);" class=""></div></blockquote></div><br class=""></body></html>