diff options
Diffstat (limited to 'testsuite/tests/indexed-types/should_compile/T14554.hs')
-rw-r--r-- | testsuite/tests/indexed-types/should_compile/T14554.hs | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/testsuite/tests/indexed-types/should_compile/T14554.hs b/testsuite/tests/indexed-types/should_compile/T14554.hs index 6049b1934e..5ed70e026f 100644 --- a/testsuite/tests/indexed-types/should_compile/T14554.hs +++ b/testsuite/tests/indexed-types/should_compile/T14554.hs @@ -1,5 +1,6 @@ {-# Language UndecidableInstances, DataKinds, TypeOperators, TypeFamilies, - PolyKinds, GADTs, LambdaCase, ScopedTypeVariables #-} + PolyKinds, GADTs, LambdaCase, ScopedTypeVariables, + StandaloneKindSignatures #-} module T14554 where @@ -16,17 +17,20 @@ data TY :: KIND -> Type where ID :: TY (FNARR X X) FNAPP :: TY (FNARR k k') -> TY k -> TY k' -data TyRep (kind::KIND) :: TY kind -> Type where +type TyRep :: forall (kind::KIND) -> TY kind -> Type +data TyRep k t where TID :: TyRep (FNARR X X) ID TFnApp :: TyRep (FNARR k k') f -> TyRep k a -> TyRep k' (FNAPP f a) -type family IK (kind::KIND) :: Type where +type IK :: KIND -> Type +type family IK kind where IK X = Type IK (FNARR k k') = IK k ~> IK k' -type family IT (ty::TY kind) :: IK kind +type IT :: TY kind -> IK kind +type family IT ty zero :: TyRep X a -> IT a zero x = case x of |