Question 2: Would the syntax: "is (T : struct)" or "is (T : enum)" make sense? It would work around the "problem" elegantly, as well as also provide support for asking things such as "does this class have an alias this to a struct", or "does this struct have an alias this to an enum"?
http://d.puremagic.com/issues/show_bug.cgi?id=11124