cpp-style built-in macros using Template Haskell