<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="">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>
<br class=""><div><blockquote type="cite" class=""><div class="">On Jan 20, 2016, at 15:49, Jerome ALVES &lt;<a href="mailto:j.alves@me.com" class="">j.alves@me.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" 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" class="">davesweeris@mac.com</a> a écrit :</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" 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 class="" style="background-color: rgb(255, 255, 255);"><span style="font-size: 11px;" class=""><span class="" style="font-family: Menlo; color: rgb(255, 47, 146);">let</span><span class="" style="color: rgb(66, 66, 66); font-family: Menlo;">&nbsp;a =&nbsp;</span><span class="" style="font-family: Menlo; color: rgb(235, 113, 0);">A</span><font color="#424242" face="Menlo" class="">()</font></span></div><div class="" style="background-color: rgb(255, 255, 255);"><span style="font-size: 11px;" class=""><span class="" style="color: rgb(66, 66, 66); font-family: Menlo;">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 class="" style="background-color: rgb(255, 255, 255);"><font class=""><br class=""></font></div></div><div class="" style="background-color: rgb(255, 255, 255);"><font class="">Either way, though, I’d love a short-hand way to convert between types.</font></div><div class="" style="background-color: rgb(255, 255, 255);"><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" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); float: none; display: inline !important;" class="">Hi everyone,</span><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">This is my first message on the mailing list and I hope I'll do everything right :)</div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">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 class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><h2 class="" style="box-sizing: border-box; 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';"><span class="" style="font-size: 25px;">Introduction</span></h2></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">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 class="" style="font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); font-size: 14px;"><h2 class="" style="box-sizing: border-box; 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';">Motivation</h2></div><div class="" style="font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); font-size: 14px;"><b class="">1. It's a really convenient pattern&nbsp;</b></div><div class="" style="font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); font-size: 14px;"><b class=""><br class=""></b></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">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 class="" style="color: rgb(61, 114, 120); font-family: Menlo;">AppColors</span>&nbsp;to define all colors used by an app, and as an enum can have properties, we can add a<span class="Apple-converted-space">&nbsp;</span><font face="Menlo" class=""><font color="#ff2f92" class="">var</font><b class=""><span class="Apple-converted-space">&nbsp;</span></b><font color="#424242" class="">color:</font><b class=""><span class="Apple-converted-space">&nbsp;</span></b><font color="#eb7100" class="">UIColor</font></font><span class="Apple-converted-space">&nbsp;</span>on it to generate the associate<span class="Apple-converted-space">&nbsp;</span><font color="#eb7100" face="Menlo" class="">UIColor</font><span class="Apple-converted-space">&nbsp;</span>(or<span class="Apple-converted-space">&nbsp;</span><font color="#eb7100" face="Menlo" class="">NSColor</font>)</div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">Its really convenient but wherever we want to use this color, we need to call the<span class="Apple-converted-space">&nbsp;</span><font color="#424242" face="Menlo" class="">.color</font>&nbsp;property :</div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><font face="Menlo" class=""><font color="#d68945" class="">myLabel</font><font color="#424242" class="">.textColor =&nbsp;</font></font><span class="" style="color: rgb(61, 114, 120); font-family: Menlo;">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 class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">We can also have a protocol<span class="Apple-converted-space">&nbsp;</span><font color="#eb7100" face="Menlo" class="">ColorConvertible</font>&nbsp;defined like this to simplify things :</div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><font face="Menlo" class=""><font color="#ff2f92" class="">protocol</font><b class=""><span class="Apple-converted-space">&nbsp;</span></b><font color="#eb7100" class="">ColorConvertible</font><b class=""><span class="Apple-converted-space">&nbsp;</span></b><font color="#424242" class="">{</font></font></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><font face="Menlo" class=""><b class="">&nbsp;&nbsp;</b><font color="#ff2f92" class="">var</font><b class=""><span class="Apple-converted-space">&nbsp;</span></b><font color="#424242" class="">color:</font><b class=""><span class="Apple-converted-space">&nbsp;</span></b><font color="#eb7100" class="">UIColor</font><b class=""><span class="Apple-converted-space">&nbsp;</span></b><font color="#424242" class="">{ get }</font></font></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><font color="#424242" face="Menlo" class="">}</font></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><span class="" style="font-family: Menlo;"><br class=""></span></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">Let's take a more concrete example with the open source library Alamofire (<a href="https://github.com/Alamofire/Alamofire" class="">https://github.com/Alamofire/Alamofire</a>).</div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">Alamofire makes an extensive usage of this pattern to convert different types into a<span class="Apple-converted-space">&nbsp;</span><font face="Menlo" class=""><b class="">"</b><font color="#eb7100" class="">NSURL</font><b class="">-compatible" String</b></font><span class="Apple-converted-space">&nbsp;</span>or a&nbsp;<font color="#eb7100" face="Menlo" class="">NSURLRequest</font><span class="Apple-converted-space">&nbsp;</span>object.</div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">Then the Alamofire API use only those&nbsp;<font color="#eb7100" face="Menlo" class="">URLStringConvertible</font><span class="Apple-converted-space">&nbsp;</span>and&nbsp;<font color="#eb7100" face="Menlo" class="">URLRequestConvertible</font><span class="Apple-converted-space">&nbsp;</span>protocols as method inputs.</div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">It's great because at the right moment where you use the Alamofire API, no matter if you currently use a<span class="Apple-converted-space">&nbsp;</span><font color="#eb7100" face="Menlo" class="">NSURL</font><span class="Apple-converted-space">&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 class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">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 class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">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 class="" style="font-family: Menlo;">&nbsp;</span>and use it directly as Alamofire API functions input.</div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">But this is sadly limited for Alamofire API. What about all other frameworks which only take<span class="Apple-converted-space">&nbsp;</span><font color="#eb7100" face="Menlo" class="">NSURL</font><b class=""><span class="Apple-converted-space">&nbsp;</span></b>as input ?</div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">Using protocols for this is counterintuitive :</div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><span class="Apple-tab-span" style="white-space: pre;">        </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 class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><span class="Apple-tab-span" style="white-space: pre;">        </span>–&nbsp;we already can see different way to write these conversions, &nbsp;:&nbsp;</div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><font class=""><span class="Apple-tab-span" style="white-space: pre;">                </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 class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><span class="Apple-tab-span" style="white-space: pre;">                </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 class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><span class="Apple-tab-span" style="white-space: pre;">                </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 class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><span class="Apple-tab-span" style="white-space: pre;">        </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 class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><div class=""><b class=""><span class="" style="font-size: 14px;">2. Swift language already makes convenient bridges between some Obj-C types and theirs Swift&nbsp;counterparts</span></b></div><div class="" style="font-size: 14px;"><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 class="" style="margin: 0px; line-height: normal;"><font color="#ff2f92" face="Menlo" class="">func</font><font color="#424242" face="Menlo" class="">&nbsp;doSomethingWithNumber(number:<span class="Apple-converted-space">&nbsp;</span></font><font color="#eb7100" face="Menlo" class="">NSNumber</font><font color="#424242" face="Menlo" class="">) {</font></div><div class="" style="margin: 0px; line-height: normal;"><font color="#424242" face="Menlo" class="">&nbsp; //...</font></div><div class="" style="margin: 0px; line-height: normal;"><font color="#424242" face="Menlo" class="">}</font></div><div class="" style="margin: 0px; line-height: normal; min-height: 14px;"><font color="#424242" face="Menlo" class=""><br class=""></font></div><div class="" style="margin: 0px; line-height: normal;"><font face="Menlo" class=""><font color="#ff2f92" class="">let</font><font color="#424242" class=""><span class="Apple-converted-space">&nbsp;</span>integer:<span class="Apple-converted-space">&nbsp;</span></font><font color="#3d7278" class="">Int</font><font color="#424242" class=""><span class="Apple-converted-space">&nbsp;</span>= 42</font></font></div><div class="" style="margin: 0px; line-height: normal;"><font color="#424242" face="Menlo" class="">doSomethingWithNumber(integer)</font></div><div class="" style="margin: 0px; font-size: 14px; line-height: normal; font-family: Inconsolata; color: rgb(66, 66, 66);"><b class="">&nbsp;</b></div></div></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><h2 class="" style="box-sizing: border-box; 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';">Proposed solution</h2></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">The cleanest way I see to add this feature is by having a new&nbsp;<span class="" style="color: rgb(255, 47, 146); font-family: Menlo;">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 class="" style="color: rgb(255, 47, 146); font-family: Menlo;">bridge</span><span class="Apple-converted-space">&nbsp;</span>keyword can be used in same places than the<span class="Apple-converted-space">&nbsp;</span><span class="" style="color: rgb(255, 47, 146); font-family: Menlo;">subscript</span><span class="Apple-converted-space">&nbsp;</span>keyword.</div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">Here is what it could look like for the above NSURL example (note how the bridge could return an optional if needed) :</div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(255, 47, 146);">extension<span class="" style="color: rgb(66, 66, 66);"><span class="Apple-converted-space">&nbsp;</span></span><span class="" style="color: rgb(61, 114, 120);">String</span><span class="" style="color: rgb(66, 66, 66);"><span class="Apple-converted-space">&nbsp;</span>{</span></div><div class="" style="margin: 0px; line-height: normal;"><font color="#424242" face="Menlo" class="">&nbsp;<span class="Apple-converted-space">&nbsp;</span></font><font color="#ff2f92" face="Menlo" class="">bridge</font><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);"><span class="Apple-converted-space">&nbsp;</span></span><font color="#eb7100" face="Menlo" class="">NSURL</font><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);">? {</span></div><div class="" style="margin: 0px; line-height: normal;"><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);">&nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span><span class="" style="color: rgb(255, 47, 146);">return</span><span class="Apple-converted-space">&nbsp;</span></span><font color="#eb7100" face="Menlo" class="">NSURL</font><font color="#424242" face="Menlo" class="">(string:<span class="Apple-converted-space">&nbsp;</span></font><span class="" style="font-family: Menlo; color: rgb(255, 47, 146);">self</span><font color="#424242" face="Menlo" class="">)</font></div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">&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="webkit-block-placeholder"></div><div class="" style="margin: 0px; line-height: normal;"><font color="#424242" face="Menlo" class="">&nbsp;<span class="Apple-converted-space">&nbsp;</span></font><font color="#ff2f92" face="Menlo" class="">bridge</font><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);"><span class="Apple-converted-space">&nbsp;</span></span><font color="#eb7100" face="Menlo" class="">NSURLComponents</font><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);">? {</span></div><div class="" style="margin: 0px; line-height: normal;"><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);">&nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span><span class="" style="color: rgb(255, 47, 146);">return</span><span class="Apple-converted-space">&nbsp;</span></span><font color="#eb7100" face="Menlo" class="">NSURLComponents</font><font color="#424242" face="Menlo" class="">(string:<span class="Apple-converted-space">&nbsp;</span></font><span class="" style="font-family: Menlo; color: rgb(255, 47, 146);">self</span><font color="#424242" face="Menlo" class="">)</font></div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">&nbsp; }</div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">}</div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66); min-height: 14px;"><br class=""></div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(235, 113, 0);"><span class="" style="color: rgb(255, 47, 146);">extension</span><span class="" style="color: rgb(66, 66, 66);"><span class="Apple-converted-space">&nbsp;</span></span>NSURLComponents<span class="" style="color: rgb(66, 66, 66);"><span class="Apple-converted-space">&nbsp;</span>{</span></div><div class="" style="margin: 0px; line-height: normal;"><font color="#424242" face="Menlo" class="">&nbsp;<span class="Apple-converted-space">&nbsp;</span></font><font color="#ff2f92" face="Menlo" class="">bridge</font><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);"><span class="Apple-converted-space">&nbsp;</span></span><font color="#eb7100" face="Menlo" class="">NSURL</font><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);">? {</span></div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(255, 47, 146);"><span class="" style="color: rgb(66, 66, 66);">&nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span></span>return<span class="" style="color: rgb(66, 66, 66);"><span class="Apple-converted-space">&nbsp;</span></span>self<span class="" style="color: rgb(66, 66, 66);">.URL</span></div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">&nbsp; }</div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">}</div></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">Now this is how Swift-to-Foundation bridge could be implemented with this new syntax :&nbsp;</div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><div class=""><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(255, 47, 146);">extension<span class="" style="color: rgb(66, 66, 66);"><span class="Apple-converted-space">&nbsp;</span></span><span class="" style="color: rgb(235, 113, 0);">NSNumber</span><span class="" style="color: rgb(66, 66, 66);"><span class="Apple-converted-space">&nbsp;</span>{</span></div><div class="" style="margin: 0px; line-height: normal;"><font color="#424242" face="Menlo" class="">&nbsp;<span class="Apple-converted-space">&nbsp;</span></font><font color="#ff2f92" face="Menlo" class="">bridge</font><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);"><span class="Apple-converted-space">&nbsp;</span></span><font color="#3d7278" face="Menlo" class="">Int</font><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);"><span class="Apple-converted-space">&nbsp;</span>{</span></div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">&nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span><span class="" style="color: rgb(255, 47, 146);">return</span><span class="Apple-converted-space">&nbsp;</span><span class="" style="color: rgb(255, 47, 146);">self</span>.integerValue</div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">&nbsp; }</div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">}</div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66); min-height: 14px;"><br class=""></div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(255, 47, 146);">extension<span class="" style="color: rgb(66, 66, 66);"><span class="Apple-converted-space">&nbsp;</span></span><span class="" style="color: rgb(61, 114, 120);">Int</span><span class="" style="color: rgb(66, 66, 66);"><span class="Apple-converted-space">&nbsp;</span>{</span></div><div class="" style="margin: 0px; line-height: normal;"><font color="#424242" face="Menlo" class="">&nbsp;<span class="Apple-converted-space">&nbsp;</span></font><font color="#ff2f92" face="Menlo" class="">bridge</font><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);"><span class="Apple-converted-space">&nbsp;</span></span><font color="#eb7100" face="Menlo" class="">NSNumber</font><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);"><span class="Apple-converted-space">&nbsp;</span>{</span></div><div class="" style="margin: 0px; line-height: normal;"><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);">&nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span><span class="" style="color: rgb(255, 47, 146);">return</span><span class="Apple-converted-space">&nbsp;</span></span><font color="#eb7100" face="Menlo" class="">NSNumber</font><font color="#424242" face="Menlo" class="">(integerValue:<span class="Apple-converted-space">&nbsp;</span></font><span class="" style="font-family: Menlo; color: rgb(255, 47, 146);">self</span><font color="#424242" face="Menlo" class="">)</font></div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">&nbsp; }</div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">}</div></div></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">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 class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><div class="" style="margin: 0px; line-height: normal;"><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);"><span class="" style="color: rgb(255, 47, 146);">enum</span><span class="Apple-converted-space">&nbsp;</span></span><font color="#3d7278" face="Menlo" class="">AppColors</font><font color="#424242" face="Menlo" class=""><span class="Apple-converted-space">&nbsp;</span>{</font></div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">&nbsp;<span class="Apple-converted-space">&nbsp;</span><span class="" style="color: rgb(255, 47, 146);">case</span><span class="Apple-converted-space">&nbsp;</span>PrimaryTextColor</div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">&nbsp;<span class="Apple-converted-space">&nbsp;</span><span class="" style="color: rgb(255, 47, 146);">case</span><span class="Apple-converted-space">&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="webkit-block-placeholder"></div><div class="" style="margin: 0px; line-height: normal;"><font color="#424242" face="Menlo" class="">&nbsp;<span class="Apple-converted-space">&nbsp;</span></font><font color="#ff2f92" face="Menlo" class="">bridge</font><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);"><span class="Apple-converted-space">&nbsp;</span></span><font color="#eb7100" face="Menlo" class="">UIColor</font><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);"><span class="Apple-converted-space">&nbsp;</span>{</span></div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(255, 47, 146);"><span class="" style="color: rgb(66, 66, 66);">&nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span></span>switch<span class="" style="color: rgb(66, 66, 66);"><span class="Apple-converted-space">&nbsp;</span></span>self<span class="" style="color: rgb(66, 66, 66);"><span class="Apple-converted-space">&nbsp;</span>{</span></div><div class="" style="margin: 0px; line-height: normal;"><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);">&nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span><span class="" style="color: rgb(255, 47, 146);">case</span><span class="Apple-converted-space">&nbsp;</span>.</span><font color="#59aba0" face="Menlo" class="">PrimaryTextColor</font><font color="#424242" face="Menlo" class="">:</font></div><div class="" style="margin: 0px; line-height: normal;"><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);">&nbsp; &nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span><span class="" style="color: rgb(255, 47, 146);">return</span><span class="Apple-converted-space">&nbsp;</span></span><font color="#eb7100" face="Menlo" class="">UIColor</font><font color="#424242" face="Menlo" class="">.blackColor()</font></div><div class="" style="margin: 0px; line-height: normal;"><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);">&nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span><span class="" style="color: rgb(255, 47, 146);">case</span><span class="Apple-converted-space">&nbsp;</span>.</span><font color="#59aba0" face="Menlo" class="">SecondaryTextColor</font><font color="#424242" face="Menlo" class="">:</font></div><div class="" style="margin: 0px; line-height: normal;"><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);">&nbsp; &nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span><span class="" style="color: rgb(255, 47, 146);">return</span><span class="Apple-converted-space">&nbsp;</span></span><font color="#eb7100" face="Menlo" class="">UIColor</font><font color="#424242" face="Menlo" class="">.grayColor()</font></div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">&nbsp; &nbsp; }</div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">&nbsp; }</div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">}</div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66); min-height: 14px;"><br class=""></div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">...</div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66); min-height: 14px;"><br class=""></div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);"><span class="" style="color: rgb(255, 47, 146);">let</span><span class="Apple-converted-space">&nbsp;</span>cell =<span class="Apple-converted-space">&nbsp;</span><span class="" style="color: rgb(235, 113, 0);">UITableViewCell</span>(style: .<span class="" style="color: rgb(89, 171, 160);">Value1</span>, reuseIdentifier:<span class="Apple-converted-space">&nbsp;</span><span class="" style="color: rgb(216, 30, 0);">"MyCell"</span>)</div><div class="" style="margin: 0px; line-height: normal;"><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);"><span class="" style="color: rgb(214, 137, 69);">cell</span>.<span class="" style="color: rgb(214, 137, 69);">textLabel</span>?.textColor = .</span><font color="#59aba0" face="Menlo" class="">PrimaryTextColor</font></div><div class="" style="margin: 0px; line-height: normal;"><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);"><span class="" style="color: rgb(214, 137, 69);">cell</span>.<span class="" style="color: rgb(214, 137, 69);">detailTextLabel</span>?.textColor = .</span><font color="#59aba0" face="Menlo" class="">SecondaryTextColor</font></div></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">We could also imagine that bridges support error throwing :&nbsp;</div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(255, 47, 146);">extension<span class="" style="color: rgb(66, 66, 66);"><span class="Apple-converted-space">&nbsp;</span></span><span class="" style="color: rgb(61, 114, 120);">String</span><span class="" style="color: rgb(66, 66, 66);"><span class="Apple-converted-space">&nbsp;</span>{</span></div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">&nbsp;<span class="Apple-converted-space">&nbsp;</span><span class="" style="color: rgb(255, 47, 146);">enum</span><span class="Apple-converted-space">&nbsp;</span>ColorBridgeError:<span class="Apple-converted-space">&nbsp;</span><span class="" style="color: rgb(235, 113, 0);">ErrorType</span><span class="Apple-converted-space">&nbsp;</span>{</div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">&nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span><span class="" style="color: rgb(255, 47, 146);">case</span><span class="Apple-converted-space">&nbsp;</span>ColorNameNotSupported</div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">&nbsp; }</div><div class="" style="margin: 0px; line-height: normal;"><font color="#424242" face="Menlo" class="">&nbsp;<span class="Apple-converted-space">&nbsp;</span></font><font color="#ff2f92" face="Menlo" class="">bridge</font><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);"><span class="Apple-converted-space">&nbsp;</span><span class="" style="color: rgb(255, 47, 146);">throws</span><span class="Apple-converted-space">&nbsp;</span></span><font color="#eb7100" face="Menlo" class="">UIColor</font><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);"><span class="Apple-converted-space">&nbsp;</span>{</span></div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(255, 47, 146);"><span class="" style="color: rgb(66, 66, 66);">&nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span></span>switch<span class="" style="color: rgb(66, 66, 66);"><span class="Apple-converted-space">&nbsp;</span></span>self<span class="" style="color: rgb(66, 66, 66);"><span class="Apple-converted-space">&nbsp;</span>{</span></div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">&nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span><span class="" style="color: rgb(255, 47, 146);">case</span><span class="Apple-converted-space">&nbsp;</span><span class="" style="color: rgb(216, 30, 0);">"red"</span>:</div><div class="" style="margin: 0px; line-height: normal;"><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);">&nbsp; &nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span><span class="" style="color: rgb(255, 47, 146);">return</span><span class="Apple-converted-space">&nbsp;</span></span><font color="#eb7100" face="Menlo" class="">UIColor</font><font color="#424242" face="Menlo" class="">.redColor()</font></div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">&nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span><span class="" style="color: rgb(255, 47, 146);">case</span><span class="Apple-converted-space">&nbsp;</span><span class="" style="color: rgb(216, 30, 0);">"blue"</span>:</div><div class="" style="margin: 0px; line-height: normal;"><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);">&nbsp; &nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span><span class="" style="color: rgb(255, 47, 146);">return</span><span class="Apple-converted-space">&nbsp;</span></span><font color="#eb7100" face="Menlo" class="">UIColor</font><font color="#424242" face="Menlo" class="">.blueColor()</font></div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(255, 47, 146);"><span class="" style="color: rgb(66, 66, 66);">&nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span></span>default<span class="" style="color: rgb(66, 66, 66);">:</span></div><div class="" style="margin: 0px; line-height: normal;"><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);">&nbsp; &nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span><span class="" style="color: rgb(255, 47, 146);">throw</span><span class="Apple-converted-space">&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 class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">&nbsp; &nbsp; }</div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">&nbsp; }</div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">}</div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66); min-height: 14px;"><br class=""></div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">...</div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66); min-height: 14px;"><br class=""></div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);"><span class="" style="color: rgb(255, 47, 146);">do</span><span class="Apple-converted-space">&nbsp;</span>{</div><div class="" style="margin: 0px; line-height: normal;"><font color="#424242" face="Menlo" class="">&nbsp;<span class="Apple-converted-space">&nbsp;</span></font><span class="" style="font-family: Menlo; color: rgb(214, 137, 69);">cell</span><font color="#424242" face="Menlo" class="">.</font><span class="" style="font-family: Menlo; color: rgb(214, 137, 69);">textLabel</span><font color="#424242" face="Menlo" class="">?.textColor =<span class="Apple-converted-space">&nbsp;</span></font><span class="" style="font-family: Menlo; color: rgb(255, 47, 146);">try</span><span class="Apple-converted-space">&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 class="" style="margin: 0px; line-height: normal;"><font color="#424242" face="Menlo" class="">&nbsp;<span class="Apple-converted-space">&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="Apple-converted-space">&nbsp;</span></font><span class="" style="font-family: Menlo; color: rgb(255, 47, 146);">nil</span></div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">}</div><div class="" style="margin: 0px; line-height: normal;"><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);"><span class="" style="color: rgb(255, 47, 146);">catch</span><span class="Apple-converted-space">&nbsp;</span></span><font color="#3d7278" face="Menlo" class="">String</font><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);">.ColorBridgeError.</span><font color="#59aba0" face="Menlo" class="">ColorNameNotSupported</font><font color="#424242" face="Menlo" class=""><span class="Apple-converted-space">&nbsp;</span>{</font></div><div class="" style="margin: 0px; line-height: normal;"><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);">&nbsp;<span class="Apple-converted-space">&nbsp;</span></span><font color="#ff2f92" face="Menlo" class="">self</font><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);">.</span><font color="#d68945" face="Menlo" class="">errorLabel</font><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);">.text =<span class="Apple-converted-space">&nbsp;</span></span><font color="#d81e00" face="Menlo" class="">"This color name is invalid :("</font></div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">}</div></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">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="Apple-converted-space">&nbsp;</span><font color="#3d7278" face="Menlo" class="">String</font><font color="#424242" face="Menlo" class=""><span class="Apple-converted-space">&nbsp;</span>-&gt;<span class="Apple-converted-space">&nbsp;</span></font><font color="#eb7100" face="Menlo" class="">NSURL</font><font color="#424242" face="Menlo" class="">?</font><span class="Apple-converted-space">&nbsp;</span>bridge, why&nbsp;<font color="#eb7100" face="Menlo" class="">NSURL</font><font color="#424242" face="Menlo" class="">(string:&nbsp;</font><span class="" style="font-family: Menlo; color: rgb(255, 47, 146);">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 class="" style="font-family: Menlo; color: rgb(255, 47, 146);">self</span><font color="#424242" face="Menlo" class="">)</font>&nbsp;?&nbsp;</div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">We could also image than bridge are "chainable" (but maybe it could affect compilation times ?). For instance&nbsp;</div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><div class=""><div class="" style="margin: 0px; line-height: normal; font-family: Menlo;"><font color="#ff2f92" class="">extension</font><span class="" style="color: rgb(66, 66, 66);">&nbsp;</span><font color="#eb7100" class="">A</font><span class="" style="color: rgb(66, 66, 66);">&nbsp;{</span></div><div class="" style="margin: 0px; line-height: normal;"><font color="#424242" face="Menlo" class="">&nbsp;&nbsp;</font><font color="#ff2f92" face="Menlo" class="">bridge</font><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);">&nbsp;</span><font color="#eb7100" face="Menlo" class="">B</font><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);">&nbsp;{</span></div><div class="" style="margin: 0px; line-height: normal;"><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);">&nbsp; &nbsp;&nbsp;<span class="" style="color: rgb(255, 47, 146);">return</span>&nbsp;</span><font color="#eb7100" face="Menlo" class="">B</font><font color="#424242" face="Menlo" class="">(withA:&nbsp;</font><span class="" style="font-family: Menlo; color: rgb(255, 47, 146);">self</span><font color="#424242" face="Menlo" class="">)</font></div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">&nbsp;&nbsp;}</div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">}</div></div></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><div class=""><div class="" style="margin: 0px; line-height: normal; font-family: Menlo;"><font color="#ff2f92" class="">extension</font><span class="" style="color: rgb(66, 66, 66);">&nbsp;</span><font color="#eb7100" class="">B</font><span class="" style="color: rgb(66, 66, 66);">&nbsp;{</span></div><div class="" style="margin: 0px; line-height: normal;"><font color="#424242" face="Menlo" class="">&nbsp;&nbsp;</font><font color="#ff2f92" face="Menlo" class="">bridge</font><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);">&nbsp;</span><span class="" style="font-family: Menlo;"><font color="#eb7100" class="">C</font></span><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);">&nbsp;{</span></div><div class="" style="margin: 0px; line-height: normal;"><span class="" style="font-family: Menlo; color: rgb(66, 66, 66);">&nbsp; &nbsp;&nbsp;<span class="" style="color: rgb(255, 47, 146);">return</span>&nbsp;</span><span class="" style="font-family: Menlo;"><font color="#eb7100" class="">C</font></span><font color="#424242" face="Menlo" class="">(withB:&nbsp;</font><span class="" style="font-family: Menlo; color: rgb(255, 47, 146);">self</span><font color="#424242" face="Menlo" class="">)</font></div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">&nbsp;&nbsp;}</div><div class="" style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(66, 66, 66);">}</div></div></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><font color="#ff2f92" face="Menlo" class="">func</font><font color="#424242" face="Menlo" class=""><span class="Apple-converted-space">&nbsp;</span>doSomethingWithC(anyC:<span class="Apple-converted-space">&nbsp;</span></font><font color="#eb7100" face="Menlo" class="">C</font><font color="#424242" face="Menlo" class="">) {</font></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><font color="#424242" face="Menlo" class="">&nbsp; //...</font></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><font color="#424242" face="Menlo" class="">}</font></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><font color="#424242" face="Menlo" class=""><br class=""></font></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><span class="" style="font-family: Menlo; color: rgb(255, 47, 146);">let</span><span class="" style="color: rgb(66, 66, 66); font-family: Menlo;">&nbsp;a =&nbsp;</span><span class="" style="font-family: Menlo; color: rgb(235, 113, 0);">A</span><font color="#424242" face="Menlo" class="">()</font></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><span class="" style="color: rgb(66, 66, 66); font-family: Menlo;">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 class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><font color="#424242" face="Menlo" class=""><br class=""></font></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">But this is optional for the feature, we could imagine to explicitly need to implement a bridge from A to C.</div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">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 class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">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 class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">Thanks for reading.</div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">Cheers,</div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">Jérôme Alves</div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br class=""></div><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; 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; 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(255, 255, 255);" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; 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; 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(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; 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(255, 255, 255);" 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; 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(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; 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(255, 255, 255);" 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; 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(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></body></html>