macroexpand is itself a macro rather than a function in Julia. Seems odd to me: saves quoting, but makes expanding forms in vars trickier.
miniblog.
Related Posts
Wonderful article on Racket, phase separation when expanding macros, and Racket's logging tooling:
Mind expanding talk! ATS has some extraordinary features: recursion termination checks, first class lifetimes, disciplined data holes. https://twitter.com/deech/status/914202899588288512
Mind-expanding worked example of partial evaluation, exploring the interpreter/compiler divide, in Scheme: