Please tell me you do not mean first-class" as equivalent to can be manipulated as a value or object at runtime, because (A) I do not think he is the most accurate definition of first-class", and (B) macros exist only at compile-read time by definition, in any language, including assembler where they were first invented, so of course they can never be manipulated at run-time, that would be self