<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=""><br class=""><div><blockquote type="cite" class=""><div class="">On Oct 11, 2016, at 12:26 AM, Adrian Zubarev via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><p style="margin: 15px 0px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(254, 254, 254);" class="">This is the latest draft of the proposal:<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/DevAndArtist/swift-evolution/blob/refactor_existential_metatypes/proposals/0126-refactor-metatypes.md" style="color: rgb(65, 131, 196); background-color: inherit; text-decoration: none;" class="">https://github.com/DevAndArtist/swift-evolution/blob/refactor_existential_metatypes/proposals/0126-refactor-metatypes.md</a></p><hr style="height: 0.2em; border: 0px; color: rgb(204, 204, 204); background-color: rgb(204, 204, 204); display: inherit; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class=""><h1 id="refactormetatypes" style="font-weight: bold; font-size: 28pt; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-style: normal; font-variant-caps: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(254, 254, 254);" class="">Refactor Metatypes</h1><ul style="margin: 15px 0px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(254, 254, 254);" class=""><li style="margin: 15px 0px;" class="">Proposal:<span class="Apple-converted-space">&nbsp;</span><a href="x-msg://5/0126-refactor-metatypes-repurpose-t-dot-self-and-mirror.md" style="color: rgb(65, 131, 196); background-color: inherit; text-decoration: none;" class="">SE–0126</a></li><li style="margin: 15px 0px;" class="">Authors:<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/DevAndArtist" style="color: rgb(65, 131, 196); background-color: inherit; text-decoration: none;" class="">Adrian Zubarev</a>,<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/Anton3" style="color: rgb(65, 131, 196); background-color: inherit; text-decoration: none;" class="">Anton Zhilin</a>,<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/brentdax" style="color: rgb(65, 131, 196); background-color: inherit; text-decoration: none;" class="">Brent Royal-Gordon</a></li><li style="margin: 15px 0px;" class="">Status:<span class="Apple-converted-space">&nbsp;</span><strong class="">Revision</strong></li><li style="margin: 15px 0px;" class="">Review manager:<span class="Apple-converted-space">&nbsp;</span><a href="http://github.com/lattner" style="color: rgb(65, 131, 196); background-color: inherit; text-decoration: none;" class="">Chris Lattner</a></li><li style="margin: 15px 0px;" class="">Revision: 2</li><li style="margin: 15px 0px;" class="">Previous Revisions:<span class="Apple-converted-space">&nbsp;</span><a href="https://github.com/apple/swift-evolution/blob/83707b0879c83dcde778f8163f5768212736fdc2/proposals/0126-refactor-metatypes-repurpose-t-dot-self-and-mirror.md" style="color: rgb(65, 131, 196); background-color: inherit; text-decoration: none;" class="">1</a></li></ul><p style="margin: 15px 0px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(254, 254, 254);" class="">In this new notation, some of our existing standard library functions would have signatures like:</p><pre style="margin: 15px 0px; font-family: Menlo, Consolas, 'Liberation Mono', Courier, monospace; font-size: 10pt; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; background-color: rgb(248, 248, 248); border: 1px solid rgb(204, 204, 204); overflow: auto; padding: 4px 8px; word-break: normal; word-wrap: normal; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><code class="swift" style="font-family: Menlo, Consolas, 'Liberation Mono', Courier, monospace; font-size: 10pt; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; background-color: rgb(248, 248, 248); color: inherit; border: 0px; margin: 0px; padding: 0px; word-break: normal; word-wrap: normal;">func unsafeBitCast&lt;T, U&gt;(_: T, to type: Type&lt;U&gt;) -&gt; U
func ==(t0: AnyType&lt;Any&gt;?, t1: AnyType&lt;Any&gt;?) -&gt; Bool
func type&lt;T&gt;(of instace: T) -&gt; AnyType&lt;T&gt; // SE-0096
</code></pre><p style="margin: 15px 0px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(254, 254, 254);" class=""></p></div></blockquote><div>Are we not going to have func staticType&lt;T&gt;(of instance: T) -&gt; Type&lt;T&gt; ?</div><div><br class=""></div><div>(Also you mis-spelled “instace”)</div><div><br class=""></div><br class=""></div><div><br class=""></div><div>Overall I like it and the whole scheme brings some nice clarity.</div><div><br class=""></div><div><br class=""></div><div>Russ</div><div><br class=""></div><div><br class=""></div><br class=""></body></html>