content: {-# LANGUAGE TemplateHaskell, GADTs, ExplicitForAll, KindSignatures #-}
  
  module T10828b where
  
  import Language.Haskell.TH
  import System.IO
  
  -- attempting to mix GADT and normal constructors
  $( return
     [ DataD [] (mkName "T")
             [ PlainTV (mkName "a") BndrReq ]
             (Just StarT)
             [ NormalC
                 (mkName "MkT")
                 [ ( Bang NoSourceUnpackedness NoSourceStrictness
                   , VarT (mkName "a")
                   )
                 , ( Bang NoSourceUnpackedness NoSourceStrictness
                   , VarT (mkName "a")
                   )
                 ]
             , ForallC [PlainTV (mkName "a") SpecifiedSpec]
                       [AppT (AppT EqualityT (VarT $ mkName "a"  ) )
                                             (ConT $ mkName "Int") ] $
               RecGadtC
                   [mkName "MkC"]
                   [ ( mkName "foo"
                     , Bang NoSourceUnpackedness NoSourceStrictness
                     , VarT (mkName "a")
                     )
                   , ( mkName "bar"
                     , Bang NoSourceUnpackedness NoSourceStrictness
                     , VarT (mkName "b")
                     )
                   ]
                   (AppT (ConT (mkName "T"))
                         (ConT (mkName "Int")))
             ]
             [] ])
  