WIP: Use Template Haskell.

As a result of pairing with Pedro Tacla Yamada at Hacker School.

Not yet working, but hopefully over most of the Template Haskell
hurdles.