[Template-haskell] using template haskell to implement pads for haskell?