{-# LANGUAGE TemplateHaskell, PolyKinds, DataKinds #-} {-# OPTIONS_GHC -Wall #-} module T8499 where import Language.Haskell.TH $( do TyConI (DataD _ _ [KindedTV tvb_a _] _ _ _) <- reify ''Maybe my_a <- newName "a" return [TySynD (mkName "SMaybe") [KindedTV my_a (AppT (ConT ''Maybe) (VarT tvb_a))] (TupleT 0)] )