<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 feel like I should mention that Clang has <font face="Menlo" class=""><font color="#941751" class="">__attribute__</font>((__swift_newtype__))</font> type attribute that replaces the imported type from <font color="#941751" face="Menlo" class="">typealias</font> to a new <font face="Menlo" color="#008f00" class="">RawRepresentable</font> <font color="#941751" face="Menlo" class="">struct</font>. Clang has a variety of poorly documented swift compatibility extensions like this (a lot of which I managed to discover, play with and determine the effect myself). I think this should be mentioned in your proposal, because it looks like this Clang attribute is begging to be re-modeled to use your <font face="Menlo" color="#941751" class="">alter</font>s.<div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jul 30, 2017, at 2:01 AM, Daryle Walker 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=""><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="">Proposal at &lt;<a href="https://gist.github.com/CTMacUser/c493f775075e946efdcfd85d38473291" class="">https://gist.github.com/CTMacUser/c493f775075e946efdcfd85d38473291</a>&gt;, uploaded revision 4.</div><div class=""><br class=""></div><div class="">Changes:</div><div class=""><br class=""></div><div class=""><ul class="MailOutline"><li class="">Since the original setup was a poor copy of how raw-style enumerations use RawRepresentable, changed the model to actually use RawRepresentable. Actually, it uses a sub-protocol, AnyAlternative, which adds an associated type for the implementing non-alternative type. AnyAlternative also serves a function like AnyObject.</li><li class="">Removed the old library support type since it’s obsolete. Added back a (now global) function to upcast to the implementation type without needing to name it.</li><li class="">Added option to initialize alternative by assigning to “super.” Using “super” by itself isn’t allowed in the grammar (It has to be followed by a member specification), so I added it.</li><li class="">Added note about pointer compatibility.</li><li class="">The model change led to a lot of rewording. And new/changed technical terms.</li></ul></div><div class=""><br class=""></div><div class="">—&nbsp;</div><div class=""><div style="letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Daryle Walker<br class="">Mac, Internet, and Video Game Junkie<br class="">darylew AT mac DOT com&nbsp;</div></div>
</div>
<br class=""></div>_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-evolution<br class=""></div></blockquote></div><br class=""></div></body></html>