I've been implementing a quasiquoter as part of the wonderful Make-A-Lisp project: https://github.com/kanaka/mal This has been the most interesting part so far! I now have a pretty good understanding of how it's an AST transformation that you later eval. I.e. basically a macro.