<div dir="ltr">I took some time to overview the whole idea in general, and I must say (surprisingly) that I don&#39;t support it myself.<div><br></div><div>* Metatypes are still in the language; it turned out that they *must* remain in the language</div><div>* The new primary `Type&lt;T&gt;` struct duplicates semantics and interface of metatypes</div><div>* But it cannot get extensive native support, so it uses `init?(casting:)` instead of `as` cast, `is(_:)` method instead of `is`, etc</div><div>* `Type&lt;T&gt;` does not add new possibilities right now, although the proposal promises to add reflection to `Type&lt;T&gt;` in the future</div><div>* `Mirror` already does reflection. It wraps `Any.Type` statically, which is a simpler and more suitable model for reflection</div><div><br></div><div>I started thinking in a completely different direction:</div><div><br></div><div>* Rename metatypes `T.Type` to `Type&lt;T&gt;`</div><div>* Rename `T.self` to `T`</div><div>* Allow `Type&lt;Type&lt;T&gt;&gt;`</div><div>* **Extend `Mirror`** for Swift 4</div><div><br></div><div>What do you think?</div></div>