<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="">Well, If you think about it, this bridge feature how I presented it here does nothing more than what we can do today. Like error handling in Swift 2, it's just a syntactic sugar to standardize a commonly used pattern. Moreover if we decide to don't allow implicit conversion but only explicit conversions with the "as" keyword, we have a feature which increase clarity.&nbsp;</div><div class=""><br class=""></div><div class=""><b class="">Don't you find that in...&nbsp;</b></div><div class=""><br class=""></div><div class=""><span style="color: rgb(66, 66, 66); font-family: Menlo;" class="">func doSomethingWith(url: NSURL) {</span></div><div class=""><span style="color: rgb(66, 66, 66); font-family: Menlo;" class="">&nbsp;</span><span style="color: rgb(66, 66, 66); font-family: Menlo;" class="">&nbsp;</span><span style="color: rgb(66, 66, 66); font-family: Menlo;" class="">&nbsp;</span><span style="color: rgb(66, 66, 66); font-family: Menlo;" class="">&nbsp;</span><span style="color: rgb(66, 66, 66); font-family: Menlo;" class="">...&nbsp;</span></div><div class=""><font color="#424242" face="Menlo" class="">}</font></div><div class=""><font color="#424242" face="Menlo" class=""><br class=""></font></div><div class=""><font color="#424242" face="Menlo" class="">let urlString = "<a href="http://swift.org" class="">http://swift.org</a>"</font></div><div class=""><br class=""></div><div class=""><b class="">... this syntax :</b></div><div class=""><div class=""><font color="#424242" face="Menlo" class="">doSomethingWith(urlString as! NSURL) // we use as! instead of as because this bridge returns a NSURL? instead of NSURL</font></div><div class=""><font color="#424242" face="Menlo" class=""><br class=""></font></div><div class=""><b class="">... is more clear than this syntax :</b></div><div class=""></div><div class=""><span style="color: rgb(66, 66, 66); font-family: Menlo;" class="">doSomethingWith(urlString.toURL()!)</span></div></div><div class=""><br class=""></div><div class="">Moreover, the IDE can bring some useful features here : We can make a cmd + click on the "as" keyword to jump right into the bridge implementation, or a option + click to see the doc associated to it.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">- Jérôme</div><br class=""><div><blockquote type="cite" class=""><div class="">Le 21 janv. 2016 à 08:35, Austin Zheng &lt;<a href="mailto:austinzheng@gmail.com" class="">austinzheng@gmail.com</a>&gt; a écrit :</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">I don't really like this feature; I see it as one of those "more brevity in exchange for less clarity" features that are an anti-goal of the project. If a bug is caused by a type conversion, I want to be able to narrow the offending conversion to an explicit call, not have to guess at which point the compiler decided to insert a conversion, which conversion was inserted, or whether one of my dependencies might be exporting a conversion I wasn't aware of.<div class=""><div class=""><br class=""></div><div class="">There was also a thread some time ago where one of the developers stated that adding general implicit conversions to Swift would make building a performant type checker impossible, but I can't find it.</div><div class=""><br class=""></div><div class="">One major exception I can think of is QoL issues when working with numbers and arithmetic, for example automatically widening integers, but there's a separate project working on redesigning that aspect of the language.</div><div class=""><br class=""></div><div class="">Best,</div><div class="">Austin<br class=""><div class=""><br class=""></div><div class=""><br class=""></div></div></div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Wed, Jan 20, 2016 at 10:58 PM, Javier Soto via swift-evolution <span dir="ltr" class="">&lt;<a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a>&gt;</span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">IIRC there was syntax to do this in Swift 1.0 which latter got removed from the language.<br class="">This sort of feature enables some cool patterns. I remember an example where some sort of Synchronized&lt;T&gt; object could be passed to a function expecting a T using this feature. However I can also see how implicit conversions can make code hard to read, and maybe they also cause complexity in the compiler (where suddenly every expression could potentially be evaluated as another type)<div class="HOEnZb"><div class="h5"><br class=""><div class="gmail_quote"><div dir="ltr" class="">On Wed, Jan 20, 2016 at 4:28 PM Dave via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a>&gt; wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class="">I was thinking A as C would tell the compiler to try A bridge C, and failing that, look through the types to which A *can* bridge to see if any of them can bridge to C, and so on… Having thought about it more, though, that’s a horrible idea. It’d be way too easy to have some *very* subtle side effects if you bridge YourAwesomeType between a couple of types that were previously bridged by some other path (a change in rounding behavior comes to mind). This is especially true since there’s nothing preventing the bridges from being “lossy”… imagine “bridging” 0.0001 to&nbsp;YourAwesomeType (which stores it as an Int) before then bridging to some other type, where previously 0.0001 would’ve gotten there via some path that *didn’t* round it to an Int along the way.<div class=""><div class=""><br class=""></div><div class="">Yeah, probably stick with having to be explicit about *how* you intend A to bridge to C, if it can’t just do it directly</div><div class=""><br class=""></div><div class=""><div class=""><div class=""><div class="">
- Dave Sweeris

</div></div></div></div></div></div><div style="word-wrap:break-word" class=""><div class=""><div class=""><div class=""><div class="">
<br class=""><div class=""><blockquote type="cite" class=""><div class="">On Jan 20, 2016, at 15:49, Jerome ALVES &lt;<a href="mailto:j.alves@me.com" target="_blank" class="">j.alves@me.com</a>&gt; wrote:</div><br class=""><div class=""><div style="word-wrap:break-word" class=""><div class="">I'm not sure, do you suggest to always use the "as" keyword, or only in case where we want to move from "A" to "C" passing by "B" ?</div><div class=""><br class=""></div><div class="">In fact,I feel right about always needing to use the "as" keyword. It's true that this kind of feature could be too magical and cause some issues. Having to explicitly cast to bridged type could be a good compromise between readability and safety.</div><div class=""><br class=""></div><br class=""><div class=""><blockquote type="cite" class=""><div class="">Le 21 janv. 2016 à 00:37, <a href="mailto:davesweeris@mac.com" target="_blank" class="">davesweeris@mac.com</a> a écrit :</div><br class=""><div class=""><div style="word-wrap:break-word" class="">I could be wrong, but I believe that implicit type conversion, in general, causes problems (which is why ImplicitlyUnwrappedOptionals are handled with “compiler magic” as opposed to a general language feature). How would you feel about reusing the as keyword?<div class=""><div style="background-color:rgb(255,255,255)" class=""><span style="font-size:11px" class=""><span style="font-family:Menlo;color:rgb(255,47,146)" class="">let</span><span style="color:rgb(66,66,66);font-family:Menlo" class="">&nbsp;a =&nbsp;</span><span style="font-family:Menlo;color:rgb(235,113,0)" class="">A</span><font color="#424242" face="Menlo" class="">()</font></span></div><div style="background-color:rgb(255,255,255)" class=""><span style="font-size:11px" class=""><span style="color:rgb(66,66,66);font-family:Menlo" class="">doSomethingWithC(a&nbsp;<span style="color:rgb(255,47,146)" class="">as</span>&nbsp;C) // Compiler could&nbsp;</span><font color="#424242" face="Menlo" class="">check if there are explicit bridging functions, and fallback to as’s current meaning if not</font></span></div><div class=""><div style="background-color:rgb(255,255,255)" class=""><font class=""><br class=""></font></div></div><div style="background-color:rgb(255,255,255)" class=""><font class="">Either way, though, I’d love a short-hand way to convert between types.</font></div><div style="background-color:rgb(255,255,255)" class=""><br class=""></div><div class="">
- Dave Sweeris

</div>
<br class=""><div class=""><blockquote type="cite" class=""><div class="">On Jan 20, 2016, at 15:27, Jerome ALVES via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class=""><div class=""><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;display:inline!important" class="">Hi everyone,</span><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class="">This is my first message on the mailing list and I hope I'll do everything right :)</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class="">I've been through the mailing-list archive and I didn't see anything close to this proposal so I hope I didn't miss anything.</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><h2 style="margin-top:1em;margin-bottom:16px;line-height:1.225;padding-bottom:0.3em;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:rgb(238,238,238);color:rgb(51,51,51);font-family:'Helvetica Neue',Helvetica,'Segoe UI',Arial,freesans,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol'" class=""><span style="font-size:25px" class="">Introduction</span></h2></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class="">Sometimes, there are several ways to represent the same thing. For instance NSURL and NSURLComponents are both used to deal with URLs, but according to the API you want to use you must have to make manual conversions from one type to another. My proposal is to add a built-in bridge feature into the Swift language to remove a lot of boilerplate code and increase readability.</div><div style="font-family:Helvetica;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);font-size:14px" class=""><h2 style="margin-top:1em;margin-bottom:16px;line-height:1.225;font-size:1.75em;padding-bottom:0.3em;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:rgb(238,238,238);color:rgb(51,51,51);font-family:'Helvetica Neue',Helvetica,'Segoe UI',Arial,freesans,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol'" class="">Motivation</h2></div><div style="font-family:Helvetica;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);font-size:14px" class=""><b class="">1. It's a really convenient pattern&nbsp;</b></div><div style="font-family:Helvetica;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);font-size:14px" class=""><b class=""><br class=""></b></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class="">Swift has several great solutions for types. Structs, Enums, and Protocols can do as much as Classes. You can define properties, methods, subscripts, you can extend them, etc.. This allowed developers to use some types where they weren't expected. For instance we can use an enum&nbsp;<span style="color:rgb(61,114,120);font-family:Menlo" class="">AppColors</span>&nbsp;to define all colors used by an app, and as an enum can have properties, we can add a<span class="">&nbsp;</span><font face="Menlo" class=""><font color="#ff2f92" class="">var</font><b class=""><span class="">&nbsp;</span></b><font color="#424242" class="">color:</font><b class=""><span class="">&nbsp;</span></b><font color="#eb7100" class="">UIColor</font></font><span class="">&nbsp;</span>on it to generate the associate<span class="">&nbsp;</span><font color="#eb7100" face="Menlo" class="">UIColor</font><span class="">&nbsp;</span>(or<span class="">&nbsp;</span><font color="#eb7100" face="Menlo" class="">NSColor</font>)</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class="">Its really convenient but wherever we want to use this color, we need to call the<span class="">&nbsp;</span><font color="#424242" face="Menlo" class="">.color</font>&nbsp;property :</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><font face="Menlo" class=""><font color="#d68945" class="">myLabel</font><font color="#424242" class="">.textColor =&nbsp;</font></font><span style="color:rgb(61,114,120);font-family:Menlo" class="">AppColors</span><font face="Menlo" class=""><font color="#424242" class="">.</font><font color="#59aba0" class="">PrimaryLabelTextColor</font><font color="#424242" class="">.color</font></font></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class="">We can also have a protocol<span class="">&nbsp;</span><font color="#eb7100" face="Menlo" class="">ColorConvertible</font>&nbsp;defined like this to simplify things :</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><font face="Menlo" class=""><font color="#ff2f92" class="">protocol</font><b class=""><span class="">&nbsp;</span></b><font color="#eb7100" class="">ColorConvertible</font><b class=""><span class="">&nbsp;</span></b><font color="#424242" class="">{</font></font></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><font face="Menlo" class=""><b class="">&nbsp;&nbsp;</b><font color="#ff2f92" class="">var</font><b class=""><span class="">&nbsp;</span></b><font color="#424242" class="">color:</font><b class=""><span class="">&nbsp;</span></b><font color="#eb7100" class="">UIColor</font><b class=""><span class="">&nbsp;</span></b><font color="#424242" class="">{ get }</font></font></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><font color="#424242" face="Menlo" class="">}</font></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><span style="font-family:Menlo" class=""><br class=""></span></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class="">Let's take a more concrete example with the open source library Alamofire (<a href="https://github.com/Alamofire/Alamofire" target="_blank" class="">https://github.com/Alamofire/Alamofire</a>).</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class="">Alamofire makes an extensive usage of this pattern to convert different types into a<span class="">&nbsp;</span><font face="Menlo" class=""><b class="">"</b><font color="#eb7100" class="">NSURL</font><b class="">-compatible" String</b></font><span class="">&nbsp;</span>or a&nbsp;<font color="#eb7100" face="Menlo" class="">NSURLRequest</font><span class="">&nbsp;</span>object.</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class="">Then the Alamofire API use only those&nbsp;<font color="#eb7100" face="Menlo" class="">URLStringConvertible</font><span class="">&nbsp;</span>and&nbsp;<font color="#eb7100" face="Menlo" class="">URLRequestConvertible</font><span class="">&nbsp;</span>protocols as method inputs.</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class="">It's great because at the right moment where you use the Alamofire API, no matter if you currently use a<span class="">&nbsp;</span><font color="#eb7100" face="Menlo" class="">NSURL</font><span class="">&nbsp;</span>or a&nbsp;<font color="#eb7100" face="Menlo" class="">NSURLComponent</font>, you can pass both as argument to the Alamofire function.</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class="">Moreover, you may want to use a custom type to build your URLs and validate them. This allows you to add some safety because you can use strong-typed enums as path components instead of error-prone strings.</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class="">And here is where this pattern is convenient : you can make your custom type (which could be a class, a struct or an enum) conforming to&nbsp;<font color="#eb7100" face="Menlo" class="">URLStringConvertible</font><span style="font-family:Menlo" class="">&nbsp;</span>and use it directly as Alamofire API functions input.</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class="">But this is sadly limited for Alamofire API. What about all other frameworks which only take<span class="">&nbsp;</span><font color="#eb7100" face="Menlo" class="">NSURL</font><b class=""><span class="">&nbsp;</span></b>as input ?</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class="">Using protocols for this is counterintuitive :</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><span style="white-space:pre-wrap" class="">        </span>–&nbsp;protocols are especially thought to don't have to deal with a particular type right ? But what we do here ? We use it only to convert the receiver into the desired type. After the conversion, the original receiver is not even used anymore because we can do nothing with it except convert it.</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><span style="white-space:pre-wrap" class="">        </span>–&nbsp;we already can see different way to write these conversions, &nbsp;:&nbsp;</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><font class=""><span style="white-space:pre-wrap" class="">                </span>-&nbsp;</font><font color="#ff2f92" face="Menlo" class="">var</font><font color="#424242" face="Menlo" class="">&nbsp;URLString:&nbsp;</font><font color="#3d7278" face="Menlo" class="">String</font><font color="#424242" face="Menlo" class="">&nbsp;{&nbsp;</font><font color="#ff2f92" face="Menlo" class="">get</font><font color="#424242" face="Menlo" class="">&nbsp;}&nbsp;</font>&nbsp;arbitrary var name pattern</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><span style="white-space:pre-wrap" class="">                </span>-&nbsp;<font color="#ff2f92" face="Menlo" class="">var</font><font color="#424242" face="Menlo" class="">&nbsp;integerValue:&nbsp;</font><font color="#3d7278" face="Menlo" class="">Int</font><font color="#424242" face="Menlo" class="">&nbsp;{&nbsp;</font><font color="#ff2f92" face="Menlo" class="">get</font><font color="#424242" face="Menlo" class="">&nbsp;}</font>&nbsp; _Value var name pattern&nbsp;(like in&nbsp;<font color="#eb7100" face="Menlo" class="">NSNumber</font>)</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><span style="white-space:pre-wrap" class="">                </span>-&nbsp;<font color="#ff2f92" face="Menlo" class="">func</font><font color="#424242" face="Menlo" class="">&nbsp;toColor() -&gt;&nbsp;</font><font color="#eb7100" face="Menlo" class="">UIColor</font><font face="Menlo" class=""><b class="">&nbsp;&nbsp;</b></font>to_() func name pattern&nbsp;</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><span style="white-space:pre-wrap" class="">        </span>– everytime we want to have a type conversion we need te create the associated protocol but it won't be compatible with third party libraries unless by manually write forwarding methods...</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><div class=""><b class=""><span style="font-size:14px" class="">2. Swift language already makes convenient bridges between some Obj-C types and theirs Swift&nbsp;counterparts</span></b></div><div style="font-size:14px" class=""><b class=""><br class=""></b></div><div class="">I didn't take the time to see how it's currently implemented right now, but we already have bridging. For instance this code is valid without doing anything :&nbsp;</div><div class=""><br class=""></div><div class=""><div style="margin:0px;line-height:normal" class=""><font color="#ff2f92" face="Menlo" class="">func</font><font color="#424242" face="Menlo" class="">&nbsp;doSomethingWithNumber(number:<span class="">&nbsp;</span></font><font color="#eb7100" face="Menlo" class="">NSNumber</font><font color="#424242" face="Menlo" class="">) {</font></div><div style="margin:0px;line-height:normal" class=""><font color="#424242" face="Menlo" class="">&nbsp; //...</font></div><div style="margin:0px;line-height:normal" class=""><font color="#424242" face="Menlo" class="">}</font></div><div style="margin:0px;line-height:normal;min-height:14px" class=""><font color="#424242" face="Menlo" class=""><br class=""></font></div><div style="margin:0px;line-height:normal" class=""><font face="Menlo" class=""><font color="#ff2f92" class="">let</font><font color="#424242" class=""><span class="">&nbsp;</span>integer:<span class="">&nbsp;</span></font><font color="#3d7278" class="">Int</font><font color="#424242" class=""><span class="">&nbsp;</span>= 42</font></font></div><div style="margin:0px;line-height:normal" class=""><font color="#424242" face="Menlo" class="">doSomethingWithNumber(integer)</font></div><div style="margin:0px;font-size:14px;line-height:normal;font-family:Inconsolata;color:rgb(66,66,66)" class=""><b class="">&nbsp;</b></div></div></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><h2 style="margin-top:1em;margin-bottom:16px;line-height:1.225;font-size:1.75em;padding-bottom:0.3em;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:rgb(238,238,238);color:rgb(51,51,51);font-family:'Helvetica Neue',Helvetica,'Segoe UI',Arial,freesans,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol'" class="">Proposed solution</h2></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class="">The cleanest way I see to add this feature is by having a new&nbsp;<span style="color:rgb(255,47,146);font-family:Menlo" class="">bridge</span>&nbsp;keyword. A bridge could be implemented either into the type implementation scope or in an extension. Bridges can also be a protocol requirement and even have a default implementation thanks to protocol extensions. In fact,&nbsp;<span style="color:rgb(255,47,146);font-family:Menlo" class="">bridge</span><span class="">&nbsp;</span>keyword can be used in same places than the<span class="">&nbsp;</span><span style="color:rgb(255,47,146);font-family:Menlo" class="">subscript</span><span class="">&nbsp;</span>keyword.</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class="">Here is what it could look like for the above NSURL example (note how the bridge could return an optional if needed) :</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(255,47,146)" class="">extension<span style="color:rgb(66,66,66)" class=""><span class="">&nbsp;</span></span><span style="color:rgb(61,114,120)" class="">String</span><span style="color:rgb(66,66,66)" class=""><span class="">&nbsp;</span>{</span></div><div style="margin:0px;line-height:normal" class=""><font color="#424242" face="Menlo" class="">&nbsp;<span class="">&nbsp;</span></font><font color="#ff2f92" face="Menlo" class="">bridge</font><span style="font-family:Menlo;color:rgb(66,66,66)" class=""><span class="">&nbsp;</span></span><font color="#eb7100" face="Menlo" class="">NSURL</font><span style="font-family:Menlo;color:rgb(66,66,66)" class="">? {</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp; &nbsp;<span class="">&nbsp;</span><span style="color:rgb(255,47,146)" class="">return</span><span class="">&nbsp;</span></span><font color="#eb7100" face="Menlo" class="">NSURL</font><font color="#424242" face="Menlo" class="">(string:<span class="">&nbsp;</span></font><span style="font-family:Menlo;color:rgb(255,47,146)" class="">self</span><font color="#424242" face="Menlo" class="">)</font></div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp; }</div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66);min-height:14px" class="">&nbsp;&nbsp;<br class=""></div><div style="margin:0px;line-height:normal" class=""><font color="#424242" face="Menlo" class="">&nbsp;<span class="">&nbsp;</span></font><font color="#ff2f92" face="Menlo" class="">bridge</font><span style="font-family:Menlo;color:rgb(66,66,66)" class=""><span class="">&nbsp;</span></span><font color="#eb7100" face="Menlo" class="">NSURLComponents</font><span style="font-family:Menlo;color:rgb(66,66,66)" class="">? {</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp; &nbsp;<span class="">&nbsp;</span><span style="color:rgb(255,47,146)" class="">return</span><span class="">&nbsp;</span></span><font color="#eb7100" face="Menlo" class="">NSURLComponents</font><font color="#424242" face="Menlo" class="">(string:<span class="">&nbsp;</span></font><span style="font-family:Menlo;color:rgb(255,47,146)" class="">self</span><font color="#424242" face="Menlo" class="">)</font></div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp; }</div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">}</div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66);min-height:14px" class=""><br class=""></div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(235,113,0)" class=""><span style="color:rgb(255,47,146)" class="">extension</span><span style="color:rgb(66,66,66)" class=""><span class="">&nbsp;</span></span>NSURLComponents<span style="color:rgb(66,66,66)" class=""><span class="">&nbsp;</span>{</span></div><div style="margin:0px;line-height:normal" class=""><font color="#424242" face="Menlo" class="">&nbsp;<span class="">&nbsp;</span></font><font color="#ff2f92" face="Menlo" class="">bridge</font><span style="font-family:Menlo;color:rgb(66,66,66)" class=""><span class="">&nbsp;</span></span><font color="#eb7100" face="Menlo" class="">NSURL</font><span style="font-family:Menlo;color:rgb(66,66,66)" class="">? {</span></div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(255,47,146)" class=""><span style="color:rgb(66,66,66)" class="">&nbsp; &nbsp;<span class="">&nbsp;</span></span>return<span style="color:rgb(66,66,66)" class=""><span class="">&nbsp;</span></span>self<span style="color:rgb(66,66,66)" class="">.URL</span></div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp; }</div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">}</div></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class="">Now this is how Swift-to-Foundation bridge could be implemented with this new syntax :&nbsp;</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><div class=""><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(255,47,146)" class="">extension<span style="color:rgb(66,66,66)" class=""><span class="">&nbsp;</span></span><span style="color:rgb(235,113,0)" class="">NSNumber</span><span style="color:rgb(66,66,66)" class=""><span class="">&nbsp;</span>{</span></div><div style="margin:0px;line-height:normal" class=""><font color="#424242" face="Menlo" class="">&nbsp;<span class="">&nbsp;</span></font><font color="#ff2f92" face="Menlo" class="">bridge</font><span style="font-family:Menlo;color:rgb(66,66,66)" class=""><span class="">&nbsp;</span></span><font color="#3d7278" face="Menlo" class="">Int</font><span style="font-family:Menlo;color:rgb(66,66,66)" class=""><span class="">&nbsp;</span>{</span></div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp; &nbsp;<span class="">&nbsp;</span><span style="color:rgb(255,47,146)" class="">return</span><span class="">&nbsp;</span><span style="color:rgb(255,47,146)" class="">self</span>.integerValue</div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp; }</div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">}</div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66);min-height:14px" class=""><br class=""></div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(255,47,146)" class="">extension<span style="color:rgb(66,66,66)" class=""><span class="">&nbsp;</span></span><span style="color:rgb(61,114,120)" class="">Int</span><span style="color:rgb(66,66,66)" class=""><span class="">&nbsp;</span>{</span></div><div style="margin:0px;line-height:normal" class=""><font color="#424242" face="Menlo" class="">&nbsp;<span class="">&nbsp;</span></font><font color="#ff2f92" face="Menlo" class="">bridge</font><span style="font-family:Menlo;color:rgb(66,66,66)" class=""><span class="">&nbsp;</span></span><font color="#eb7100" face="Menlo" class="">NSNumber</font><span style="font-family:Menlo;color:rgb(66,66,66)" class=""><span class="">&nbsp;</span>{</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp; &nbsp;<span class="">&nbsp;</span><span style="color:rgb(255,47,146)" class="">return</span><span class="">&nbsp;</span></span><font color="#eb7100" face="Menlo" class="">NSNumber</font><font color="#424242" face="Menlo" class="">(integerValue:<span class="">&nbsp;</span></font><span style="font-family:Menlo;color:rgb(255,47,146)" class="">self</span><font color="#424242" face="Menlo" class="">)</font></div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp; }</div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">}</div></div></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class="">Then, as soon a bridge is defined from a type A to a type B, anywhere an API expects to have a type B, we could pass a type A instead :</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><div style="margin:0px;line-height:normal" class=""><span style="font-family:Menlo;color:rgb(66,66,66)" class=""><span style="color:rgb(255,47,146)" class="">enum</span><span class="">&nbsp;</span></span><font color="#3d7278" face="Menlo" class="">AppColors</font><font color="#424242" face="Menlo" class=""><span class="">&nbsp;</span>{</font></div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp;<span class="">&nbsp;</span><span style="color:rgb(255,47,146)" class="">case</span><span class="">&nbsp;</span>PrimaryTextColor</div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp;<span class="">&nbsp;</span><span style="color:rgb(255,47,146)" class="">case</span><span class="">&nbsp;</span>SecondaryTextColor</div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66);min-height:14px" class="">&nbsp;&nbsp;<br class=""></div><div style="margin:0px;line-height:normal" class=""><font color="#424242" face="Menlo" class="">&nbsp;<span class="">&nbsp;</span></font><font color="#ff2f92" face="Menlo" class="">bridge</font><span style="font-family:Menlo;color:rgb(66,66,66)" class=""><span class="">&nbsp;</span></span><font color="#eb7100" face="Menlo" class="">UIColor</font><span style="font-family:Menlo;color:rgb(66,66,66)" class=""><span class="">&nbsp;</span>{</span></div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(255,47,146)" class=""><span style="color:rgb(66,66,66)" class="">&nbsp; &nbsp;<span class="">&nbsp;</span></span>switch<span style="color:rgb(66,66,66)" class=""><span class="">&nbsp;</span></span>self<span style="color:rgb(66,66,66)" class=""><span class="">&nbsp;</span>{</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp; &nbsp;<span class="">&nbsp;</span><span style="color:rgb(255,47,146)" class="">case</span><span class="">&nbsp;</span>.</span><font color="#59aba0" face="Menlo" class="">PrimaryTextColor</font><font color="#424242" face="Menlo" class="">:</font></div><div style="margin:0px;line-height:normal" class=""><span style="font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp; &nbsp; &nbsp;<span class="">&nbsp;</span><span style="color:rgb(255,47,146)" class="">return</span><span class="">&nbsp;</span></span><font color="#eb7100" face="Menlo" class="">UIColor</font><font color="#424242" face="Menlo" class="">.blackColor()</font></div><div style="margin:0px;line-height:normal" class=""><span style="font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp; &nbsp;<span class="">&nbsp;</span><span style="color:rgb(255,47,146)" class="">case</span><span class="">&nbsp;</span>.</span><font color="#59aba0" face="Menlo" class="">SecondaryTextColor</font><font color="#424242" face="Menlo" class="">:</font></div><div style="margin:0px;line-height:normal" class=""><span style="font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp; &nbsp; &nbsp;<span class="">&nbsp;</span><span style="color:rgb(255,47,146)" class="">return</span><span class="">&nbsp;</span></span><font color="#eb7100" face="Menlo" class="">UIColor</font><font color="#424242" face="Menlo" class="">.grayColor()</font></div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp; &nbsp; }</div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp; }</div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">}</div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66);min-height:14px" class=""><br class=""></div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">...</div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66);min-height:14px" class=""><br class=""></div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class=""><span style="color:rgb(255,47,146)" class="">let</span><span class="">&nbsp;</span>cell =<span class="">&nbsp;</span><span style="color:rgb(235,113,0)" class="">UITableViewCell</span>(style: .<span style="color:rgb(89,171,160)" class="">Value1</span>, reuseIdentifier:<span class="">&nbsp;</span><span style="color:rgb(216,30,0)" class="">"MyCell"</span>)</div><div style="margin:0px;line-height:normal" class=""><span style="font-family:Menlo;color:rgb(66,66,66)" class=""><span style="color:rgb(214,137,69)" class="">cell</span>.<span style="color:rgb(214,137,69)" class="">textLabel</span>?.textColor = .</span><font color="#59aba0" face="Menlo" class="">PrimaryTextColor</font></div><div style="margin:0px;line-height:normal" class=""><span style="font-family:Menlo;color:rgb(66,66,66)" class=""><span style="color:rgb(214,137,69)" class="">cell</span>.<span style="color:rgb(214,137,69)" class="">detailTextLabel</span>?.textColor = .</span><font color="#59aba0" face="Menlo" class="">SecondaryTextColor</font></div></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class="">We could also imagine that bridges support error throwing :&nbsp;</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(255,47,146)" class="">extension<span style="color:rgb(66,66,66)" class=""><span class="">&nbsp;</span></span><span style="color:rgb(61,114,120)" class="">String</span><span style="color:rgb(66,66,66)" class=""><span class="">&nbsp;</span>{</span></div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp;<span class="">&nbsp;</span><span style="color:rgb(255,47,146)" class="">enum</span><span class="">&nbsp;</span>ColorBridgeError:<span class="">&nbsp;</span><span style="color:rgb(235,113,0)" class="">ErrorType</span><span class="">&nbsp;</span>{</div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp; &nbsp;<span class="">&nbsp;</span><span style="color:rgb(255,47,146)" class="">case</span><span class="">&nbsp;</span>ColorNameNotSupported</div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp; }</div><div style="margin:0px;line-height:normal" class=""><font color="#424242" face="Menlo" class="">&nbsp;<span class="">&nbsp;</span></font><font color="#ff2f92" face="Menlo" class="">bridge</font><span style="font-family:Menlo;color:rgb(66,66,66)" class=""><span class="">&nbsp;</span><span style="color:rgb(255,47,146)" class="">throws</span><span class="">&nbsp;</span></span><font color="#eb7100" face="Menlo" class="">UIColor</font><span style="font-family:Menlo;color:rgb(66,66,66)" class=""><span class="">&nbsp;</span>{</span></div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(255,47,146)" class=""><span style="color:rgb(66,66,66)" class="">&nbsp; &nbsp;<span class="">&nbsp;</span></span>switch<span style="color:rgb(66,66,66)" class=""><span class="">&nbsp;</span></span>self<span style="color:rgb(66,66,66)" class=""><span class="">&nbsp;</span>{</span></div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp; &nbsp;<span class="">&nbsp;</span><span style="color:rgb(255,47,146)" class="">case</span><span class="">&nbsp;</span><span style="color:rgb(216,30,0)" class="">"red"</span>:</div><div style="margin:0px;line-height:normal" class=""><span style="font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp; &nbsp; &nbsp;<span class="">&nbsp;</span><span style="color:rgb(255,47,146)" class="">return</span><span class="">&nbsp;</span></span><font color="#eb7100" face="Menlo" class="">UIColor</font><font color="#424242" face="Menlo" class="">.redColor()</font></div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp; &nbsp;<span class="">&nbsp;</span><span style="color:rgb(255,47,146)" class="">case</span><span class="">&nbsp;</span><span style="color:rgb(216,30,0)" class="">"blue"</span>:</div><div style="margin:0px;line-height:normal" class=""><span style="font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp; &nbsp; &nbsp;<span class="">&nbsp;</span><span style="color:rgb(255,47,146)" class="">return</span><span class="">&nbsp;</span></span><font color="#eb7100" face="Menlo" class="">UIColor</font><font color="#424242" face="Menlo" class="">.blueColor()</font></div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(255,47,146)" class=""><span style="color:rgb(66,66,66)" class="">&nbsp; &nbsp;<span class="">&nbsp;</span></span>default<span style="color:rgb(66,66,66)" class="">:</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp; &nbsp; &nbsp;<span class="">&nbsp;</span><span style="color:rgb(255,47,146)" class="">throw</span><span class="">&nbsp;</span></span><font color="#3d7278" face="Menlo" class="">ColorBridgeError</font><font color="#424242" face="Menlo" class="">.</font><font color="#59aba0" face="Menlo" class="">ColorNameNotSupported</font></div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp; &nbsp; }</div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp; }</div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">}</div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66);min-height:14px" class=""><br class=""></div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">...</div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66);min-height:14px" class=""><br class=""></div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class=""><span style="color:rgb(255,47,146)" class="">do</span><span class="">&nbsp;</span>{</div><div style="margin:0px;line-height:normal" class=""><font color="#424242" face="Menlo" class="">&nbsp;<span class="">&nbsp;</span></font><span style="font-family:Menlo;color:rgb(214,137,69)" class="">cell</span><font color="#424242" face="Menlo" class="">.</font><span style="font-family:Menlo;color:rgb(214,137,69)" class="">textLabel</span><font color="#424242" face="Menlo" class="">?.textColor =<span class="">&nbsp;</span></font><span style="font-family:Menlo;color:rgb(255,47,146)" class="">try</span><span class="">&nbsp;</span><font color="#ff2f92" face="Menlo" class="">self</font><font color="#424242" face="Menlo" class="">.</font><font color="#d68945" face="Menlo" class="">colorNameTextField</font><font color="#424242" face="Menlo" class="">.text</font></div><div style="margin:0px;line-height:normal" class=""><font color="#424242" face="Menlo" class="">&nbsp;<span class="">&nbsp;</span></font><font color="#ff2f92" face="Menlo" class="">self</font><font color="#424242" face="Menlo" class="">.</font><font color="#d68945" face="Menlo" class="">errorLabel</font><font color="#424242" face="Menlo" class="">.text =<span class="">&nbsp;</span></font><span style="font-family:Menlo;color:rgb(255,47,146)" class="">nil</span></div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">}</div><div style="margin:0px;line-height:normal" class=""><span style="font-family:Menlo;color:rgb(66,66,66)" class=""><span style="color:rgb(255,47,146)" class="">catch</span><span class="">&nbsp;</span></span><font color="#3d7278" face="Menlo" class="">String</font><span style="font-family:Menlo;color:rgb(66,66,66)" class="">.ColorBridgeError.</span><font color="#59aba0" face="Menlo" class="">ColorNameNotSupported</font><font color="#424242" face="Menlo" class=""><span class="">&nbsp;</span>{</font></div><div style="margin:0px;line-height:normal" class=""><span style="font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp;<span class="">&nbsp;</span></span><font color="#ff2f92" face="Menlo" class="">self</font><span style="font-family:Menlo;color:rgb(66,66,66)" class="">.</span><font color="#d68945" face="Menlo" class="">errorLabel</font><span style="font-family:Menlo;color:rgb(66,66,66)" class="">.text =<span class="">&nbsp;</span></span><font color="#d81e00" face="Menlo" class="">"This color name is invalid :("</font></div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">}</div></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class="">This implementation is of course one of many implementations possible and I'm really open to suggestions. For instance I already can see one trade-off of this implementation : for the<span class="">&nbsp;</span><font color="#3d7278" face="Menlo" class="">String</font><font color="#424242" face="Menlo" class=""><span class="">&nbsp;</span>-&gt;<span class="">&nbsp;</span></font><font color="#eb7100" face="Menlo" class="">NSURL</font><font color="#424242" face="Menlo" class="">?</font><span class="">&nbsp;</span>bridge, why&nbsp;<font color="#eb7100" face="Menlo" class="">NSURL</font><font color="#424242" face="Menlo" class="">(string:&nbsp;</font><span style="font-family:Menlo;color:rgb(255,47,146)" class="">self</span><font color="#424242" face="Menlo" class="">)</font>&nbsp;would be chosen over&nbsp;<font color="#eb7100" face="Menlo" class="">NSURL</font><font color="#424242" face="Menlo" class="">(fileURLWithPath:&nbsp;</font><span style="font-family:Menlo;color:rgb(255,47,146)" class="">self</span><font color="#424242" face="Menlo" class="">)</font>&nbsp;?&nbsp;</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class="">We could also image than bridge are "chainable" (but maybe it could affect compilation times ?). For instance&nbsp;</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><div class=""><div style="margin:0px;line-height:normal;font-family:Menlo" class=""><font color="#ff2f92" class="">extension</font><span style="color:rgb(66,66,66)" class="">&nbsp;</span><font color="#eb7100" class="">A</font><span style="color:rgb(66,66,66)" class="">&nbsp;{</span></div><div style="margin:0px;line-height:normal" class=""><font color="#424242" face="Menlo" class="">&nbsp;&nbsp;</font><font color="#ff2f92" face="Menlo" class="">bridge</font><span style="font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp;</span><font color="#eb7100" face="Menlo" class="">B</font><span style="font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp;{</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp; &nbsp;&nbsp;<span style="color:rgb(255,47,146)" class="">return</span>&nbsp;</span><font color="#eb7100" face="Menlo" class="">B</font><font color="#424242" face="Menlo" class="">(withA:&nbsp;</font><span style="font-family:Menlo;color:rgb(255,47,146)" class="">self</span><font color="#424242" face="Menlo" class="">)</font></div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp;&nbsp;}</div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">}</div></div></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><div class=""><div style="margin:0px;line-height:normal;font-family:Menlo" class=""><font color="#ff2f92" class="">extension</font><span style="color:rgb(66,66,66)" class="">&nbsp;</span><font color="#eb7100" class="">B</font><span style="color:rgb(66,66,66)" class="">&nbsp;{</span></div><div style="margin:0px;line-height:normal" class=""><font color="#424242" face="Menlo" class="">&nbsp;&nbsp;</font><font color="#ff2f92" face="Menlo" class="">bridge</font><span style="font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp;</span><span style="font-family:Menlo" class=""><font color="#eb7100" class="">C</font></span><span style="font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp;{</span></div><div style="margin:0px;line-height:normal" class=""><span style="font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp; &nbsp;&nbsp;<span style="color:rgb(255,47,146)" class="">return</span>&nbsp;</span><span style="font-family:Menlo" class=""><font color="#eb7100" class="">C</font></span><font color="#424242" face="Menlo" class="">(withB:&nbsp;</font><span style="font-family:Menlo;color:rgb(255,47,146)" class="">self</span><font color="#424242" face="Menlo" class="">)</font></div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">&nbsp;&nbsp;}</div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(66,66,66)" class="">}</div></div></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><font color="#ff2f92" face="Menlo" class="">func</font><font color="#424242" face="Menlo" class=""><span class="">&nbsp;</span>doSomethingWithC(anyC:<span class="">&nbsp;</span></font><font color="#eb7100" face="Menlo" class="">C</font><font color="#424242" face="Menlo" class="">) {</font></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><font color="#424242" face="Menlo" class="">&nbsp; //...</font></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><font color="#424242" face="Menlo" class="">}</font></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><font color="#424242" face="Menlo" class=""><br class=""></font></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><span style="font-family:Menlo;color:rgb(255,47,146)" class="">let</span><span style="color:rgb(66,66,66);font-family:Menlo" class="">&nbsp;a =&nbsp;</span><span style="font-family:Menlo;color:rgb(235,113,0)" class="">A</span><font color="#424242" face="Menlo" class="">()</font></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><span style="color:rgb(66,66,66);font-family:Menlo" class="">doSomethingWithC(a) // Compiler could&nbsp;</span><font color="#424242" face="Menlo" class="">implicitly bridge `a` to type `B`, then bridge the result to type `C`</font></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><font color="#424242" face="Menlo" class=""><br class=""></font></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class="">But this is optional for the feature, we could imagine to explicitly need to implement a bridge from A to C.</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class="">Well, I think that's all for now. I hope it was not too long to read and it was well explained. I'm of course open to all suggestions, questions, enhancements, etc...</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class="">I would also be happy to have technical details about possible implementations as I'm not an expert at all in compiler design. I really don't know how this feature could affect the compiler and any insight here will be welcome.</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class="">Thanks for reading.</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class="">Cheers,</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class="">Jérôme Alves</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><br class=""></div><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;display:inline!important" class="">_______________________________________________</span><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;display:inline!important" class="">swift-evolution mailing list</span><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><a href="mailto:swift-evolution@swift.org" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" target="_blank" class="">swift-evolution@swift.org</a><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" target="_blank" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" class=""></div></blockquote></div><br class=""></div></div></div></blockquote></div><br class=""></div></div></blockquote></div><br class=""></div></div></div></div></div>_______________________________________________<br class="">
swift-evolution mailing list<br class="">
<a href="mailto:swift-evolution@swift.org" target="_blank" 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="">
</blockquote></div></div></div><span class="HOEnZb"><font color="#888888" class=""><div dir="ltr" class="">-- <br class=""></div>Javier Soto
</font></span><br class="">_______________________________________________<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" rel="noreferrer" target="_blank" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class="">
<br class=""></blockquote></div><br class=""></div>
</div></blockquote></div><br class=""></body></html>