summaryrefslogtreecommitdiff
path: root/testsuite/tests/th/T12045TH2.hs
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/th/T12045TH2.hs')
-rw-r--r--testsuite/tests/th/T12045TH2.hs12
1 files changed, 8 insertions, 4 deletions
diff --git a/testsuite/tests/th/T12045TH2.hs b/testsuite/tests/th/T12045TH2.hs
index 21d04cb826..7f28fe5326 100644
--- a/testsuite/tests/th/T12045TH2.hs
+++ b/testsuite/tests/th/T12045TH2.hs
@@ -1,5 +1,5 @@
-{-# LANGUAGE TemplateHaskell, TypeApplications, PolyKinds
- , TypeFamilies, DataKinds #-}
+{-# LANGUAGE TemplateHaskell, DataKinds, PolyKinds,
+ StandaloneKindSignatures, TypeApplications, TypeFamilies #-}
module T12045TH2 where
@@ -7,7 +7,8 @@ import Data.Kind
import Language.Haskell.TH hiding (Type)
import System.IO
-type family Foo (a :: k) :: Type where
+type Foo :: k -> Type
+type family Foo a where
Foo @Type a = Bool
type family Baz (a :: k)
@@ -16,13 +17,16 @@ type instance Baz @(Type->Type->Type) a = Char
$( do FamilyI foo@(ClosedTypeFamilyD (TypeFamilyHead _ tvbs1 res1 m_kind1)
[TySynEqn (Just bndrs1) (AppT _ lhs1) rhs1])
[] <- reify ''Foo
+ sig1 <- reifyType ''Foo
FamilyI baz@(OpenTypeFamilyD (TypeFamilyHead _ tvbs2 res2 m_kind2))
[inst@(TySynInstD (TySynEqn (Just bndrs2) (AppT _ lhs2) rhs2))] <- reify ''Baz
+ runIO $ putStrLn $ pprint sig1
runIO $ putStrLn $ pprint foo
runIO $ putStrLn $ pprint baz
runIO $ putStrLn $ pprint inst
runIO $ hFlush stdout
- return [ ClosedTypeFamilyD
+ return [ KiSigD (mkName "Foo'") sig1
+ , ClosedTypeFamilyD
(TypeFamilyHead (mkName "Foo'") tvbs1 res1 m_kind1)
[TySynEqn (Just bndrs1) (AppT (ConT (mkName "Foo'")) lhs1) rhs1]
, OpenTypeFamilyD