TIL eager macro expansion can mean very different things.
Rust macros must expand to valid code, so eager macro expansion allows illegal intermediate states: https://docs.rs/eager/0.1.0/eager/macro.eager.html#macro-expansions
Elisp macros are expanded at runtime unless expansion is eager:
miniblog.
Related Posts
I've released difftastic 0.10!
This version adds four new languages: C, C++, C# and Haskell! See screenshots for examples.
The manual is also substantially expanded, discussing other tree diffing projects and code samples that are hard for tree diffs.
The road to Scala 3, including "TASTy", an expanded and desugared typed syntax tree to enable source level compatibility:
I've written a lot of lisp, including a respectable number of macros, and I don't think I've ever been caught out by hygiene.
I've definitely written broken macros that expanded to the wrong thing though.



