In Rust (for example), Types are not Values. You can't store them in variables, pass them to functions, etc.
However, at macro-expansion time, often what you want to do is examine a Type and expand the macro differently based on some information about the Type.
So you would like your Macro language to have some notion of manipulating Types that is absent from the language itself