Today I learnt that Haskell has *three* ways of changing what syntax means! Quasiquotation: https://wiki.haskell.org/Quasiquotation Template Haskell (like Lisp macros): https://wiki.haskell.org/Template_Haskell RebindableSyntax: https://ocharles.org.uk/guest-posts/2014-12-06-rebindable-syntax.html