So prior to the introduction of the any keyword, there was no way to spell "the type of the Any type"?
And why the assymmetry? Like, if I have:
protocol P {}
struct S: P {}
I expect that I can both upcast an instance of S to any P, and open an existential of type any P back to a generic of type S.
But when .Type gets involved, I can upcast String.self (of type String.Type) to any Any.Type, but I can't open any Any.Type back to a generic of type String.Type. I can open (any Any).Type back to a generic of type String.Type, though. If I knew how to get an (any Any).Type representing String.self?
The "protocol metatype" of Any, or the singleton metatype of the existential type Any, was (and still can be) spelled Any.Protocol, but is additionally now spelled (any Any).Type.
The "existential metatype" which used to be spelled Any.Type can now also be spelled any Any.Type, but just as for Any the new keyword is considered optional for the existential metatype.