[racket] Another Canonical Use of Macros?
John Clements writes:
> categorizing them in terms of the "three canonical categories" that
> Matthias described--apologies if I'm misrepresenting him/you:
> - changing evaluation order,
> - implementing a data sublanguage, and
> - creating new binding forms.
>
> Some of the Rust macros seem to fall into a fourth category, which arises from the fact that certain things are not expressions:
>
> - abstracting over things that are not expressions.
This looks like a generalization of "creating new binding forms". In
the Lisp family, binding forms are the major category of
non-expression forms.
Konrad.