Template meta-programming for Haskell | Synapse