Lisp and Macros

In lisp, macros are like special sub-languages that compile into lisp.

Backquote compilation is easily handled by cogen. It appears that at least the matching and rebuilding features of syntax-rules (see appendix to [r4rs]) can be implemented efficiently with cogen. How does cogen's variable renaming relate to hygenic macros?

There are several typical ways of extending lisp: allowing the user to define new procedures, allowing the user to define new syntax with macros, allowing the user to define new lexers with read macros. Cogen is like allowing the user to define new `evals'.

CLOS uses `mutable' reified structures, allowing the user to customize the language [MOP]. Cogen allows the creation of new languages, with whatever properties the user needs. See also [open-comp].