<div dir="ltr"><div class="markdown-here-wrapper" style=""><p style="margin:0px 0px 1.2em!important"><code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">Type</code> is a bad name for a public type: <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">FooType</code> is almost always a better name. Libraries that describe “just types”, Swift types, can as well use <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">Metatype</code> or <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">Mirror</code> or something.<br>For nested types, like <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">Foo.Type</code>, in the meaning of “type of <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">Foo</code>“, <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">Type</code> can’t be used even now.<br>I’d give up on <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">Type</code> name for the greater future of metatypes.</p>
<p style="margin:0px 0px 1.2em!important">2017-02-18 16:28 GMT+03:00 Adrian Zubarev &lt;<a href="mailto:adrian.zubarev@devandartist.com" target="_blank">adrian.zubarev@devandartist.com</a>&gt;:</p>
<p style="margin:0px 0px 1.2em!important"></p><div class="markdown-here-exclude"><p></p><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div class="m_-3396370866651105684bloop_markdown"><p>Personally I’d prefer <code>Metatype&lt;T&gt;</code> and <code>AnyMetatype&lt;T&gt;</code> to get rid of the restriction where you mostly cannot create custom types called <code>Type</code>, which annoys me a lot. Sometimes <code>Kind</code> as a good workaround but there are times where <code>Kind</code> doesn’t fit. :/</p></div></div></blockquote><p></p></div><p style="margin:0px 0px 1.2em!important"></p>
<div title="MDH:YFR5cGVgIGlzIGEgYmFkIG5hbWUgZm9yIGEgcHVibGljIHR5cGU6IGBGb29UeXBlYCBpcyBhbG1v
c3QgYWx3YXlzIGEgYmV0dGVyIG5hbWUuIExpYnJhcmllcyB0aGF0IGRlc2NyaWJlICJqdXN0IHR5
cGVzIiwgU3dpZnQgdHlwZXMsIGNhbiBhcyB3ZWxsIHVzZSBgTWV0YXR5cGVgIG9yIGBNaXJyb3Jg
IG9yIHNvbWV0aGluZy48ZGl2PkZvciBuZXN0ZWQgdHlwZXMsIGxpa2UgYEZvby5UeXBlYCwgaW4g
dGhlIG1lYW5pbmcgb2YgInR5cGUgb2YgYEZvb2AiLCBgVHlwZWAgY2FuJ3QgYmUgdXNlZCBldmVu
IG5vdy48L2Rpdj48ZGl2PkknZCBnaXZlIHVwIG9uIGBUeXBlYCBuYW1lIGZvciB0aGUgZ3JlYXRl
ciBmdXR1cmUgb2YgbWV0YXR5cGVzLjwvZGl2PjxkaXY+PGRpdiBjbGFzcz0iZ21haWxfZXh0cmEi
Pjxicj48ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+MjAxNy0wMi0xOCAxNjoyOCBHTVQrMDM6MDAg
QWRyaWFuIFp1YmFyZXYgPHNwYW4gZGlyPSJsdHIiPiZsdDs8YSBocmVmPSJtYWlsdG86YWRyaWFu
Lnp1YmFyZXZAZGV2YW5kYXJ0aXN0LmNvbSIgdGFyZ2V0PSJfYmxhbmsiPmFkcmlhbi56dWJhcmV2
QGRldmFuZGFydGlzdC5jb208L2E+Jmd0Ozwvc3Bhbj46PGJyPjxibG9ja3F1b3RlIGNsYXNzPSJn
bWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowIDAgMCAuOGV4O2JvcmRlci1sZWZ0OjFweCAjY2Nj
IHNvbGlkO3BhZGRpbmctbGVmdDoxZXgiPjxkaXYgc3R5bGU9IndvcmQtd3JhcDpicmVhay13b3Jk
Ij48ZGl2IGNsYXNzPSJtXy0zMzk2MzcwODY2NjUxMTA1Njg0Ymxvb3BfbWFya2Rvd24iPjxwPlBl
cnNvbmFsbHkgSeKAmWQgcHJlZmVyIDxjb2RlPk1ldGF0eXBlJmx0O1QmZ3Q7PC9jb2RlPiBhbmQg
PGNvZGU+QW55TWV0YXR5cGUmbHQ7VCZndDs8L2NvZGU+IHRvIGdldCByaWQgb2YgdGhlIHJlc3Ry
aWN0aW9uIHdoZXJlIHlvdSBtb3N0bHkgY2Fubm90IGNyZWF0ZSBjdXN0b20gdHlwZXMgY2FsbGVk
IDxjb2RlPlR5cGU8L2NvZGU+LCB3aGljaCBhbm5veXMgbWUgYSBsb3QuIFNvbWV0aW1lcyA8Y29k
ZT5LaW5kPC9jb2RlPiBhcyBhIGdvb2Qgd29ya2Fyb3VuZCBidXQgdGhlcmUgYXJlIHRpbWVzIHdo
ZXJlIDxjb2RlPktpbmQ8L2NvZGU+IGRvZXNu4oCZdCBmaXQuIDovPC9wPjwvZGl2PjwvZGl2Pjwv
YmxvY2txdW90ZT48L2Rpdj48L2Rpdj48L2Rpdj4=" style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0">​</div></div></div>