{-# LANGUAGE TemplateHaskell #-} module THDef where import Language.Haskell.TH import Language.Haskell.TH.Syntax class F a where f :: a gen :: Lift t => Name -> t -> Q [Dec] gen ty v = [d| instance F $(conT ty) where f = v |]