{-# LANGUAGE Haskell2010 #-} {-# LANGUAGE PolyKinds #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeFamilies #-} module T12646 where import Language.Haskell.TH hiding (Type) import System.IO import Data.Kind (Type) type family F (a :: k) :: Type where F (a :: Type -> Type) = Int F (a :: k) = Char $(do info <- reify ''F runIO $ putStrLn $ pprint info runIO $ hFlush stdout return [])