<html><head><style>
body {
        font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
        padding:1em;
        margin:auto;
        background:#fefefe;
}

h1, h2, h3, h4, h5, h6 {
        font-weight: bold;
}

h1 {
        color: #000000;
        font-size: 28pt;
}

h2 {
        border-bottom: 1px solid #CCCCCC;
        color: #000000;
        font-size: 24px;
}

h3 {
        font-size: 18px;
}

h4 {
        font-size: 16px;
}

h5 {
        font-size: 14px;
}

h6 {
        color: #777777;
        background-color: inherit;
        font-size: 14px;
}

hr {
        height: 0.2em;
        border: 0;
        color: #CCCCCC;
        background-color: #CCCCCC;
    display: inherit;
}

p, blockquote, ul, ol, dl, li, table, pre {
        margin: 15px 0;
}

a, a:visited {
        color: #4183C4;
        background-color: inherit;
        text-decoration: none;
}

#message {
        border-radius: 6px;
        border: 1px solid #ccc;
        display:block;
        width:100%;
        height:60px;
        margin:6px 0px;
}

button, #ws {
        font-size: 12 pt;
        padding: 4px 6px;
        border-radius: 5px;
        border: 1px solid #bbb;
        background-color: #eee;
}

code, pre, #ws, #message {
        font-family: Monaco;
        font-size: 10pt;
        border-radius: 3px;
        background-color: #F8F8F8;
        color: inherit;
}

code {
        border: 1px solid #EAEAEA;
        margin: 0 2px;
        padding: 0 5px;
}

pre {
        border: 1px solid #CCCCCC;
        overflow: auto;
        padding: 4px 8px;
}

pre > code {
        border: 0;
        margin: 0;
        padding: 0;
}

#ws { background-color: #f8f8f8; }


.bloop_markdown table {
border-collapse: collapse;  
font-family: Helvetica, arial, freesans, clean, sans-serif;  
color: rgb(51, 51, 51);  
font-size: 15px; line-height: 25px;
padding: 0; }

.bloop_markdown table tr {
border-top: 1px solid #cccccc;
background-color: white;
margin: 0;
padding: 0; }
     
.bloop_markdown table tr:nth-child(2n) {
background-color: #f8f8f8; }

.bloop_markdown table tr th {
font-weight: bold;
border: 1px solid #cccccc;
margin: 0;
padding: 6px 13px; }

.bloop_markdown table tr td {
border: 1px solid #cccccc;
margin: 0;
padding: 6px 13px; }

.bloop_markdown table tr th :first-child, table tr td :first-child {
margin-top: 0; }

.bloop_markdown table tr th :last-child, table tr td :last-child {
margin-bottom: 0; }

.bloop_markdown blockquote{
  border-left: 4px solid #dddddd;
  padding: 0 15px;
  color: #777777; }
  blockquote > :first-child {
    margin-top: 0; }
  blockquote > :last-child {
    margin-bottom: 0; }

code, pre, #ws, #message {
    word-break: normal;
    word-wrap: normal;
}

hr {
    display: inherit;
}

.bloop_markdown :first-child {
    -webkit-margin-before: 0;
}

code, pre, #ws, #message {
    font-family: Menlo, Consolas, Liberation Mono, Courier, monospace;
}


.send { color:#77bb77; }
.server { color:#7799bb; }
.error { color:#AA0000; }</style></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class="bloop_markdown"><p>Typo: I actually meant <code>type-</code> and <code>module-alias</code>.</p>

<p></p></div><div class="bloop_original_html"><style>body{font-family:Helvetica,Arial;font-size:13px}</style><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;"><br></div> <br> <div id="bloop_sign_1490908612753395200" class="bloop_sign"><div style="font-family:helvetica,arial;font-size:13px">--&nbsp;<br>Adrian Zubarev<br>Sent with Airmail</div></div> <br><p class="airmail_on">Am 30. März 2017 um 23:16:14, Adrian Zubarev (<a href="mailto:adrian.zubarev@devandartist.com">adrian.zubarev@devandartist.com</a>) schrieb:</p> <blockquote type="cite" class="clean_bq"><span><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div></div><div>




<title></title>



<div class="bloop_markdown">
<p>Something like a type- and type-alias when importing from Obj-C
to Swift?</p>
<p>That would be reasonable, I’d guess.</p>
</div>
<div class="bloop_original_html">

<div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;">
<br></div>
<br>
<div id="bloop_sign_1490908424425459968" class="bloop_sign">
<div style="font-family:helvetica,arial;font-size:13px">
--&nbsp;<br>
Adrian Zubarev<br>
Sent with Airmail</div>
</div>
<br>
<p class="airmail_on">Am 30. März 2017 um 23:12:30, Louis D'hauwe
(<a href="mailto:louisdhauwe@silverfox.be">louisdhauwe@silverfox.be</a>)
schrieb:</p>
<blockquote type="cite" class="clean_bq">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
<div><span>I disagree, my proposal is not to rename Apple
frameworks.&nbsp;</span>
<div class=""><span>It is to improve the importing of Objective-C
designed frameworks to remove the unnecessary
prefixes.</span></div>
<div class=""><span><br class=""></span></div>
<div class="">
<div style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);" class=""><span>– Louis D'hauwe</span></div>
<div class=""><span><br class=""></span>
<div>
<blockquote type="cite" class="">
<div class=""><span>On 30 Mar 2017, at 23:07, Adrian Zubarev
&lt;<a href="mailto:adrian.zubarev@devandartist.com" class="">adrian.zubarev@devandartist.com</a>&gt; wrote:</span></div>
<span><br class="Apple-interchange-newline"></span>
<div class="">
<div class="bloop_markdown" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(254, 254, 254);">
<p style="margin: 15px 0px; -webkit-margin-before: 0px;" class="">
<span>The issue is, this has nothing to do with swift evolution.
You could file a bug report for the Apple frameworks, but I doubt
something this huge will make it through.</span></p>
<div style="margin: 15px 0px;" class=""><span><br class="webkit-block-placeholder"></span></div>
</div>
<div class="bloop_original_html" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(254, 254, 254);">
<div id="bloop_customfont" style="font-family: Helvetica, Arial; font-size: 13px; margin: 0px;" class=""><span><br class=""></span></div>
<span><br class=""></span>
<div id="bloop_sign_1490907906995757056" class="bloop_sign">
<div style="font-family: helvetica, arial; font-size: 13px;" class=""><span>--&nbsp;<br class="">
Adrian Zubarev<br class="">
Sent with Airmail</span></div>
</div>
<span><br class=""></span>
<p class="airmail_on" style="margin: 15px 0px;"><span>Am 30. März
2017 um 23:03:52, Louis D'hauwe via swift-evolution (<a href="mailto:swift-evolution@swift.org" style="color: rgb(65, 131, 196); background-color: inherit; text-decoration: none;" class="">swift-evolution@swift.org</a>) schrieb:</span></p>
<blockquote type="cite" class="clean_bq" style="margin: 15px 0px;">
<div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<div class=""></div>
<div class="">
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);">
<span><span style="margin-top: 0px; margin-bottom: 0px;" class="">Apple frameworks contain prefixes, carried over from
Objective-C.</span></span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);">
<span style="margin-top: 0px; margin-bottom: 0px;" class="">These
exist to prevent class and method name collisions.</span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69); min-height: 14px;">
<span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);">
<span style="margin-top: 0px; margin-bottom: 0px;" class="">Mattt
Thompson has a great article about this, containing the following
brilliant excerpt:</span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);">
<span style="margin-top: 0px; margin-bottom: 0px;" class="">"Namespacing is the preeminent bugbear of Objective-C. A
cosmetic quirk with global implications, the language’s lack of
identifier containers remains a source of prodigious quantities of
caremad for armchair language critics." (<a href="http://nshipster.com/namespacing/" class="" style="color: rgb(65, 131, 196); background-color: inherit; text-decoration: none;">http://nshipster.com/namespacing/</a>)</span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69); min-height: 14px;">
<span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);">
<span style="margin-top: 0px; margin-bottom: 0px;" class="">Since
Swift can handle with these naming conflicts, wouldn't it make
sense to drop all framework prefixes in a Swift
environment?</span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69); min-height: 14px;">
<span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);">
<span style="margin-top: 0px; margin-bottom: 0px;" class="">A
classic example is UIKit, where all classes are prefixed with
"UI".&nbsp;</span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);">
<span style="margin-top: 0px; margin-bottom: 0px;" class="">Code
example:</span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69); min-height: 14px;">
<span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);">
<span style="margin-top: 0px; margin-bottom: 0px;" class="">&nbsp;
&nbsp; import UIKit</span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69); min-height: 14px;">
<span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);">
<span style="margin-top: 0px; margin-bottom: 0px;" class="">&nbsp;
&nbsp; class FooViewController: UIViewController {</span></div>
<div style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69); min-height: 14px;" class=""><span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class="webkit-block-placeholder"></span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);">
<span style="margin-top: 0px; margin-bottom: 0px;" class="">&nbsp;
&nbsp; }</span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69); min-height: 14px;">
<span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);">
<span style="margin-top: 0px; margin-bottom: 0px;" class="">Dropping the prefix would simply lead to the
following:</span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69); min-height: 14px;">
<span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);">
<span style="margin-top: 0px; margin-bottom: 0px;" class="">&nbsp;
&nbsp; import UIKit</span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69); min-height: 14px;">
<span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);">
<span style="margin-top: 0px; margin-bottom: 0px;" class="">&nbsp;
&nbsp; class FooViewController: ViewController {</span></div>
<div style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69); min-height: 14px;" class=""><span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class="webkit-block-placeholder"></span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);">
<span style="margin-top: 0px; margin-bottom: 0px;" class="">&nbsp;
&nbsp; }</span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69); min-height: 14px;">
<span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);">
<span style="margin-top: 0px; margin-bottom: 0px;" class="">Since
conflicts need to be handled by specifying the module name, the
following could be used if "ViewController" was also used by either
some, other than UIKit, imported framework or by a user defined
class:</span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69); min-height: 14px;">
<span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);">
<span style="margin-top: 0px; margin-bottom: 0px;" class="">&nbsp;
&nbsp; import UIKit</span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69); min-height: 14px;">
<span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);">
<span style="margin-top: 0px; margin-bottom: 0px;" class="">&nbsp;
&nbsp; class FooViewController: UIKit.ViewController {</span></div>
<div style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69); min-height: 14px;" class=""><span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class="webkit-block-placeholder"></span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);">
<span style="margin-top: 0px; margin-bottom: 0px;" class="">&nbsp;
&nbsp; }</span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69); min-height: 14px;">
<span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);">
<span style="margin-top: 0px; margin-bottom: 0px;" class="">"UIKit.ViewController" is of course quite longer than the
current "UIViewController".</span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);">
<span style="margin-top: 0px; margin-bottom: 0px;" class="">An
improvement could be to allow frameworks to specify an abbreviated
form.</span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);">
<span style="margin-top: 0px; margin-bottom: 0px;" class="">UIKit
could define "UI" as its abbreviation, making the following code
valid:</span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69); min-height: 14px;">
<span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);">
<span style="margin-top: 0px; margin-bottom: 0px;" class="">&nbsp;
&nbsp; import UI</span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69); min-height: 14px;">
<span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);">
<span style="margin-top: 0px; margin-bottom: 0px;" class="">&nbsp;
&nbsp; class FooViewController: UI.ViewController {</span></div>
<div style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69); min-height: 14px;" class=""><span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class="webkit-block-placeholder"></span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);">
<span style="margin-top: 0px; margin-bottom: 0px;" class="">&nbsp;
&nbsp; }</span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);">
<span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);">
<span style="margin-top: 0px; margin-bottom: 0px;" class="">This
all seems to me like a natural continuation of&nbsp;<a href="https://github.com/apple/swift-evolution/blob/9cf2685293108ea3efcbebb7ee6a8618b83d4a90/proposals/0086-drop-foundation-ns.md" class="" style="color: rgb(65, 131, 196); background-color: inherit; text-decoration: none;">SE-0086</a>.</span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);">
<span style="margin-top: 0px; margin-bottom: 0px;" class="">I do
realise this would be a major change, breaking pretty much every
Swift iOS, macOS, tvOS and watchOS project.</span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);">
<span style="margin-top: 0px; margin-bottom: 0px;" class="">But in
the long term, I think it's worth it.</span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69); min-height: 14px;">
<span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></span></div>
<div class="" style="margin: 0px; line-height: normal; font-family: 'Helvetica Neue'; color: rgb(69, 69, 69);">
<span style="margin-top: 0px; margin-bottom: 0px;" class="">– Louis
D'hauwe</span></div>
<div class=""><span style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></span></div>
<span style="margin-top: 0px; margin-bottom: 0px;" class="">_______________________________________________<br class="">
swift-evolution mailing list<br class="">
<a href="mailto:swift-evolution@swift.org" style="color: rgb(65, 131, 196); background-color: inherit; text-decoration: none;" class="">swift-evolution@swift.org</a><br class="">
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" style="color: rgb(65, 131, 196); background-color: inherit; text-decoration: none;" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class="">
</span></div>
</div>
</blockquote>
</div>
<div class="bloop_markdown" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(254, 254, 254);">
</div>
</div>
</blockquote>
</div>
<br class=""></div>
</div>
</div>
</div>
</blockquote>
</div>
<div class="bloop_markdown"></div>


</div></div></span></blockquote></div><div class="bloop_markdown"><p></p></div></body></html>