Use `dumpTree` to see if your DSL (your second snippet) is valid. (It isn't. You need to lose the dots in front of every line)
* * * Next, you can use `dumpAstGen` on the wanted result (your first snippet) to see what your final results look like. This does 90% of the job for you — you can copy–paste it in your macro and just change some fields. The other option (which will produce cleaner/simpler macro), is to use `quote`.
