switch from TH to haskell-src, implement class variable wrapping