haskell-th-abstraction