diff options
Diffstat (limited to 'testsuite/tests')
336 files changed, 1081 insertions, 912 deletions
diff --git a/testsuite/tests/codeGen/should_fail/T13233.hs b/testsuite/tests/codeGen/should_fail/T13233.hs index fa5a37b046..1facb77914 100644 --- a/testsuite/tests/codeGen/should_fail/T13233.hs +++ b/testsuite/tests/codeGen/should_fail/T13233.hs @@ -1,5 +1,5 @@ {-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} {-# LANGUAGE UnboxedTuples #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE MagicHash #-} diff --git a/testsuite/tests/dependent/ghci/T11549.script b/testsuite/tests/dependent/ghci/T11549.script index d8a0e97a61..3e0811f921 100644 --- a/testsuite/tests/dependent/ghci/T11549.script +++ b/testsuite/tests/dependent/ghci/T11549.script @@ -1,4 +1,4 @@ -:set -XTypeInType +:set -XPolyKinds import GHC.Exts putStrLn "-fno-print-explicit-runtime-reps" diff --git a/testsuite/tests/dependent/ghci/T14238.stdout b/testsuite/tests/dependent/ghci/T14238.stdout index fddbc0de54..729f821af7 100644 --- a/testsuite/tests/dependent/ghci/T14238.stdout +++ b/testsuite/tests/dependent/ghci/T14238.stdout @@ -1 +1 @@ -Foo :: forall k -> k -> * +Foo :: forall k -> k -> Type diff --git a/testsuite/tests/dependent/should_compile/Dep1.hs b/testsuite/tests/dependent/should_compile/Dep1.hs index 6f8fe0720d..086d759bbe 100644 --- a/testsuite/tests/dependent/should_compile/Dep1.hs +++ b/testsuite/tests/dependent/should_compile/Dep1.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds #-} module Dep1 where diff --git a/testsuite/tests/dependent/should_compile/Dep2.hs b/testsuite/tests/dependent/should_compile/Dep2.hs index df1cb51e08..34be3cffc6 100644 --- a/testsuite/tests/dependent/should_compile/Dep2.hs +++ b/testsuite/tests/dependent/should_compile/Dep2.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType, GADTs #-} +{-# LANGUAGE PolyKinds, GADTs #-} module Dep2 where diff --git a/testsuite/tests/dependent/should_compile/Dep3.hs b/testsuite/tests/dependent/should_compile/Dep3.hs index cba5043a08..db10d2a8c6 100644 --- a/testsuite/tests/dependent/should_compile/Dep3.hs +++ b/testsuite/tests/dependent/should_compile/Dep3.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeFamilies, TypeInType, GADTs #-} +{-# LANGUAGE TypeFamilies, DataKinds, PolyKinds, GADTs #-} module Dep3 where diff --git a/testsuite/tests/dependent/should_compile/DkNameRes.hs b/testsuite/tests/dependent/should_compile/DkNameRes.hs new file mode 100644 index 0000000000..4110b33882 --- /dev/null +++ b/testsuite/tests/dependent/should_compile/DkNameRes.hs @@ -0,0 +1,9 @@ +{-# LANGUAGE TypeFamilies, DataKinds, PolyKinds #-} + +module DkNameRes where + +import Data.Proxy +import Data.Kind + +type family IfK (e :: Proxy (j :: Bool)) :: Type where + IfK (_ :: Proxy True) = () diff --git a/testsuite/tests/dependent/should_compile/InferDependency.hs b/testsuite/tests/dependent/should_compile/InferDependency.hs deleted file mode 100644 index 47957d47d6..0000000000 --- a/testsuite/tests/dependent/should_compile/InferDependency.hs +++ /dev/null @@ -1,6 +0,0 @@ -{-# LANGUAGE TypeInType #-} - -module InferDependency where - -data Proxy k (a :: k) -data Proxy2 k a = P (Proxy k a) diff --git a/testsuite/tests/dependent/should_compile/KindEqualities.hs b/testsuite/tests/dependent/should_compile/KindEqualities.hs index 4cba8281ca..1caa46f7c3 100644 --- a/testsuite/tests/dependent/should_compile/KindEqualities.hs +++ b/testsuite/tests/dependent/should_compile/KindEqualities.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType, GADTs, ExplicitForAll #-} +{-# LANGUAGE PolyKinds, GADTs, ExplicitForAll #-} {-# OPTIONS_GHC -fwarn-incomplete-patterns #-} module KindEqualities where diff --git a/testsuite/tests/dependent/should_compile/KindEqualities2.hs b/testsuite/tests/dependent/should_compile/KindEqualities2.hs index 5a6f60d40b..0bdfcfa034 100644 --- a/testsuite/tests/dependent/should_compile/KindEqualities2.hs +++ b/testsuite/tests/dependent/should_compile/KindEqualities2.hs @@ -1,6 +1,5 @@ {-# LANGUAGE DataKinds, GADTs, PolyKinds, TypeFamilies, ExplicitForAll, - TemplateHaskell, UndecidableInstances, ScopedTypeVariables, - TypeInType #-} + TemplateHaskell, UndecidableInstances, ScopedTypeVariables #-} module KindEqualities2 where diff --git a/testsuite/tests/dependent/should_compile/KindLevels.hs b/testsuite/tests/dependent/should_compile/KindLevels.hs index 1aad299df3..5540ce40cd 100644 --- a/testsuite/tests/dependent/should_compile/KindLevels.hs +++ b/testsuite/tests/dependent/should_compile/KindLevels.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds #-} module KindLevels where diff --git a/testsuite/tests/dependent/should_compile/RAE_T32b.hs b/testsuite/tests/dependent/should_compile/RAE_T32b.hs index 7e067099c9..ddd21db18d 100644 --- a/testsuite/tests/dependent/should_compile/RAE_T32b.hs +++ b/testsuite/tests/dependent/should_compile/RAE_T32b.hs @@ -1,23 +1,27 @@ {-# LANGUAGE TemplateHaskell, TypeFamilies, GADTs, DataKinds, PolyKinds, - RankNTypes, TypeOperators, TypeInType #-} + RankNTypes, TypeOperators #-} module RAE_T32b where import Data.Kind -data family Sing (k :: *) :: k -> * +data family Sing (k :: Type) :: k -> Type -data TyArr (a :: *) (b :: *) :: * -type family (a :: TyArr k1 k2 -> *) @@ (b :: k1) :: k2 +data TyArr (a :: Type) (b :: Type) :: Type +type family (a :: TyArr k1 k2 -> Type) @@ (b :: k1) :: k2 $(return []) -data Sigma (p :: *) (r :: TyArr p * -> *) :: * where - Sigma :: forall (p :: *) (r :: TyArr p * -> *) (a :: p) (b :: r @@ a). - Sing * p -> Sing (TyArr p * -> *) r -> Sing p a -> Sing (r @@ a) b -> Sigma p r +data Sigma (p :: Type) (r :: TyArr p Type -> Type) :: Type where + Sigma :: forall (p :: Type) (r :: TyArr p Type -> Type) + (a :: p) (b :: r @@ a). + Sing Type p -> Sing (TyArr p Type -> Type) r -> Sing p a -> + Sing (r @@ a) b -> Sigma p r $(return []) -data instance Sing (Sigma p r) (x :: Sigma p r) :: * where - SSigma :: forall (p :: *) (r :: TyArr p * -> *) (a :: p) (b :: r @@ a) - (sp :: Sing * p) (sr :: Sing (TyArr p * -> *) r) (sa :: Sing p a) (sb :: Sing (r @@ a) b). +data instance Sing (Sigma p r) (x :: Sigma p r) :: Type where + SSigma :: forall (p :: Type) (r :: TyArr p Type -> Type) + (a :: p) (b :: r @@ a) + (sp :: Sing Type p) (sr :: Sing (TyArr p Type -> Type) r) + (sa :: Sing p a) (sb :: Sing (r @@ a) b). Sing (Sing (r @@ a) b) sb -> Sing (Sigma p r) ('Sigma sp sr sa sb) diff --git a/testsuite/tests/dependent/should_compile/Rae31.hs b/testsuite/tests/dependent/should_compile/Rae31.hs index cedc019cf3..7a50b606ee 100644 --- a/testsuite/tests/dependent/should_compile/Rae31.hs +++ b/testsuite/tests/dependent/should_compile/Rae31.hs @@ -1,24 +1,27 @@ {-# LANGUAGE TemplateHaskell, TypeOperators, PolyKinds, DataKinds, - TypeFamilies, TypeInType #-} + TypeFamilies #-} module A where import Data.Kind -data family Sing (k :: *) :: k -> * +data family Sing (k :: Type) :: k -> Type type Sing' (x :: k) = Sing k x -data TyFun' (a :: *) (b :: *) :: * -type TyFun (a :: *) (b :: *) = TyFun' a b -> * +data TyFun' (a :: Type) (b :: Type) :: Type +type TyFun (a :: Type) (b :: Type) = TyFun' a b -> Type type family (a :: TyFun k1 k2) @@ (b :: k1) :: k2 -data TyPi' (a :: *) (b :: TyFun a *) :: * -type TyPi (a :: *) (b :: TyFun a *) = TyPi' a b -> * +data TyPi' (a :: Type) (b :: TyFun a Type) :: Type +type TyPi (a :: Type) (b :: TyFun a Type) = TyPi' a b -> Type type family (a :: TyPi k1 k2) @@@ (b :: k1) :: k2 @@ b $(return []) -data A (a :: *) (b :: a) (c :: TyFun' a *) -- A :: forall a -> a -> a ~> * -type instance (@@) (A a b) c = * +data A (a :: Type) (b :: a) (c :: TyFun' a Type) + -- A :: forall a -> a -> a ~> Type +type instance (@@) (A a b) c = Type $(return []) -data B (a :: *) (b :: TyFun' a *) -- B :: forall a -> a ~> * +data B (a :: Type) (b :: TyFun' a Type) + -- B :: forall a -> a ~> Type type instance (@@) (B a) b = TyPi a (A a b) $(return []) -data C (a :: *) (b :: TyPi a (B a)) (c :: a) (d :: a) (e :: TyFun' (b @@@ c @@@ d) *) +data C (a :: Type) (b :: TyPi a (B a)) (c :: a) (d :: a) + (e :: TyFun' (b @@@ c @@@ d) Type) diff --git a/testsuite/tests/dependent/should_compile/RaeBlogPost.hs b/testsuite/tests/dependent/should_compile/RaeBlogPost.hs index e99c7b5dd5..b048a49e44 100644 --- a/testsuite/tests/dependent/should_compile/RaeBlogPost.hs +++ b/testsuite/tests/dependent/should_compile/RaeBlogPost.hs @@ -1,5 +1,4 @@ -{-# LANGUAGE DataKinds, PolyKinds, GADTs, TypeOperators, TypeFamilies, - TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds, GADTs, TypeOperators, TypeFamilies #-} {-# OPTIONS_GHC -fwarn-unticked-promoted-constructors #-} module RaeBlogPost where @@ -8,7 +7,7 @@ import Data.Kind -- a Proxy type with an explicit kind data Proxy k (a :: k) = P -prox :: Proxy * Bool +prox :: Proxy Type Bool prox = P prox2 :: Proxy Bool 'True @@ -16,11 +15,11 @@ prox2 = P -- implicit kinds still work data A -data B :: A -> * -data C :: B a -> * -data D :: C b -> * -data E :: D c -> * --- note that E :: forall (a :: A) (b :: B a) (c :: C b). D c -> * +data B :: A -> Type +data C :: B a -> Type +data D :: C b -> Type +data E :: D c -> Type +-- note that E :: forall (a :: A) (b :: B a) (c :: C b). D c -> Type -- a kind-indexed GADT data TypeRep (a :: k) where @@ -37,7 +36,7 @@ type family a + b where 'Zero + b = b ('Succ a) + b = 'Succ (a + b) -data Vec :: * -> Nat -> * where +data Vec :: Type -> Nat -> Type where Nil :: Vec a 'Zero (:>) :: a -> Vec a n -> Vec a ('Succ n) infixr 5 :> @@ -47,17 +46,17 @@ type family (x :: Vec a n) ++ (y :: Vec a m) :: Vec a (n + m) where 'Nil ++ y = y (h ':> t) ++ y = h ':> (t ++ y) --- datatype that mentions * -data U = Star (*) +-- datatype that mentions Type +data U = Star (Type) | Bool Bool -- kind synonym -type Monadish = * -> * +type Monadish = Type -> Type class MonadTrans (t :: Monadish -> Monadish) where lift :: Monad m => m a -> t m a data Free :: Monadish where Return :: a -> Free a Bind :: Free a -> (a -> Free b) -> Free b --- yes, * really does have type *. -type Star = (* :: (* :: (* :: *))) +-- yes, Type really does have type Type. +type Star = (Type :: (Type :: (Type :: Type))) diff --git a/testsuite/tests/dependent/should_compile/RaeJobTalk.hs b/testsuite/tests/dependent/should_compile/RaeJobTalk.hs index 480db090c3..1a22573109 100644 --- a/testsuite/tests/dependent/should_compile/RaeJobTalk.hs +++ b/testsuite/tests/dependent/should_compile/RaeJobTalk.hs @@ -3,7 +3,7 @@ {-# LANGUAGE TypeOperators, TypeFamilies, TypeApplications, AllowAmbiguousTypes, ExplicitForAll, ScopedTypeVariables, GADTs, TypeFamilyDependencies, - TypeInType, ConstraintKinds, UndecidableInstances, + DataKinds, PolyKinds , ConstraintKinds, UndecidableInstances, FlexibleInstances, MultiParamTypeClasses, FunctionalDependencies, FlexibleContexts, StandaloneDeriving, InstanceSigs, RankNTypes, UndecidableSuperClasses #-} diff --git a/testsuite/tests/dependent/should_compile/T11405.hs b/testsuite/tests/dependent/should_compile/T11405.hs index cdb713f118..5fdd7baed1 100644 --- a/testsuite/tests/dependent/should_compile/T11405.hs +++ b/testsuite/tests/dependent/should_compile/T11405.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE ImplicitParams, TypeInType, ExplicitForAll #-} +{-# LANGUAGE ImplicitParams, PolyKinds, ExplicitForAll #-} module T11405 where diff --git a/testsuite/tests/dependent/should_compile/T11635.hs b/testsuite/tests/dependent/should_compile/T11635.hs index 2292def966..61d9978e55 100644 --- a/testsuite/tests/dependent/should_compile/T11635.hs +++ b/testsuite/tests/dependent/should_compile/T11635.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType, KindSignatures, ExplicitForAll, RankNTypes #-} +{-# LANGUAGE PolyKinds, KindSignatures, ExplicitForAll, RankNTypes #-} module T11635 where diff --git a/testsuite/tests/dependent/should_compile/T11711.hs b/testsuite/tests/dependent/should_compile/T11711.hs index 0cd4dceb42..814b2a4a68 100644 --- a/testsuite/tests/dependent/should_compile/T11711.hs +++ b/testsuite/tests/dependent/should_compile/T11711.hs @@ -5,7 +5,6 @@ {-# LANGUAGE KindSignatures #-} {-# LANGUAGE PolyKinds #-} {-# LANGUAGE ViewPatterns #-} -{-# LANGUAGE TypeInType #-} {-# LANGUAGE TypeSynonymInstances #-} {-# LANGUAGE FlexibleInstances #-} diff --git a/testsuite/tests/dependent/should_compile/T11719.hs b/testsuite/tests/dependent/should_compile/T11719.hs index ba4d7c9db4..e4c2a89bf2 100644 --- a/testsuite/tests/dependent/should_compile/T11719.hs +++ b/testsuite/tests/dependent/should_compile/T11719.hs @@ -1,12 +1,12 @@ -{-# LANGUAGE RankNTypes, TypeFamilies, TypeInType, TypeOperators, +{-# LANGUAGE RankNTypes, TypeFamilies, TypeOperators, DataKinds, PolyKinds, UndecidableInstances #-} module T11719 where import Data.Kind -data TyFun :: * -> * -> * -type a ~> b = TyFun a b -> * +data TyFun :: Type -> Type -> Type +type a ~> b = TyFun a b -> Type type family (f :: a ~> b) @@ (x :: a) :: b diff --git a/testsuite/tests/dependent/should_compile/T11966.hs b/testsuite/tests/dependent/should_compile/T11966.hs index 0262a0aed3..daad450f13 100644 --- a/testsuite/tests/dependent/should_compile/T11966.hs +++ b/testsuite/tests/dependent/should_compile/T11966.hs @@ -3,7 +3,6 @@ {-# LANGUAGE KindSignatures #-} {-# LANGUAGE PolyKinds #-} {-# LANGUAGE RankNTypes #-} -{-# LANGUAGE TypeInType #-} {-# LANGUAGE TypeOperators #-} module T11966 where diff --git a/testsuite/tests/dependent/should_compile/T12176.hs b/testsuite/tests/dependent/should_compile/T12176.hs index 0e340068a7..a11c151567 100644 --- a/testsuite/tests/dependent/should_compile/T12176.hs +++ b/testsuite/tests/dependent/should_compile/T12176.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE RankNTypes, TypeInType, GADTs, TypeFamilies #-} +{-# LANGUAGE RankNTypes, DataKinds, PolyKinds, GADTs, TypeFamilies #-} module T12176 where diff --git a/testsuite/tests/dependent/should_compile/T12442.hs b/testsuite/tests/dependent/should_compile/T12442.hs index f9dbf0a486..c76dfb962e 100644 --- a/testsuite/tests/dependent/should_compile/T12442.hs +++ b/testsuite/tests/dependent/should_compile/T12442.hs @@ -1,7 +1,7 @@ -- Based on https://github.com/idris-lang/Idris-dev/blob/v0.9.10/libs/effects/Effects.idr -{-# LANGUAGE TypeInType, ScopedTypeVariables, TypeOperators, TypeApplications, - GADTs, TypeFamilies, AllowAmbiguousTypes #-} +{-# LANGUAGE DataKinds, PolyKinds, ScopedTypeVariables, TypeOperators, + TypeApplications, GADTs, TypeFamilies, AllowAmbiguousTypes #-} module T12442 where diff --git a/testsuite/tests/dependent/should_compile/T12742.hs b/testsuite/tests/dependent/should_compile/T12742.hs index baa3e2c071..988d7c318a 100644 --- a/testsuite/tests/dependent/should_compile/T12742.hs +++ b/testsuite/tests/dependent/should_compile/T12742.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType, RankNTypes, TypeFamilies #-} +{-# LANGUAGE DataKinds, PolyKinds, RankNTypes, TypeFamilies #-} module T12742 where diff --git a/testsuite/tests/dependent/should_compile/T13910.hs b/testsuite/tests/dependent/should_compile/T13910.hs index 82d47e45bc..b3707dd365 100644 --- a/testsuite/tests/dependent/should_compile/T13910.hs +++ b/testsuite/tests/dependent/should_compile/T13910.hs @@ -7,7 +7,8 @@ {-# LANGUAGE Trustworthy #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilyDependencies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE PolyKinds #-} {-# LANGUAGE TypeOperators #-} module T13910 where @@ -17,7 +18,7 @@ import Data.Type.Equality data family Sing (a :: k) class SingKind k where - type Demote k = (r :: *) | r -> k + type Demote k = (r :: Type) | r -> k fromSing :: Sing (a :: k) -> Demote k toSing :: Demote k -> SomeSing k @@ -33,8 +34,8 @@ withSomeSing x f = case toSing x of SomeSing x' -> f x' -data TyFun :: * -> * -> * -type a ~> b = TyFun a b -> * +data TyFun :: Type -> Type -> Type +type a ~> b = TyFun a b -> Type infixr 0 ~> type family Apply (f :: k1 ~> k2) (x :: k1) :: k2 diff --git a/testsuite/tests/dependent/should_compile/T13938.hs b/testsuite/tests/dependent/should_compile/T13938.hs index dd4f3d6c7c..1ce77d194f 100644 --- a/testsuite/tests/dependent/should_compile/T13938.hs +++ b/testsuite/tests/dependent/should_compile/T13938.hs @@ -4,7 +4,8 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE PolyKinds #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} module T13938 where diff --git a/testsuite/tests/dependent/should_compile/T13938a.hs b/testsuite/tests/dependent/should_compile/T13938a.hs index 3a09292922..5197747e87 100644 --- a/testsuite/tests/dependent/should_compile/T13938a.hs +++ b/testsuite/tests/dependent/should_compile/T13938a.hs @@ -7,7 +7,8 @@ {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE PolyKinds #-} {-# LANGUAGE TypeOperators #-} module T13938a where diff --git a/testsuite/tests/dependent/should_compile/T14038.hs b/testsuite/tests/dependent/should_compile/T14038.hs index 839220a0ce..04b24b9f9e 100644 --- a/testsuite/tests/dependent/should_compile/T14038.hs +++ b/testsuite/tests/dependent/should_compile/T14038.hs @@ -6,7 +6,8 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE PolyKinds #-} {-# LANGUAGE TypeOperators #-} module T14038 where diff --git a/testsuite/tests/dependent/should_compile/T14066a.hs b/testsuite/tests/dependent/should_compile/T14066a.hs index e1a6255520..30b203d31b 100644 --- a/testsuite/tests/dependent/should_compile/T14066a.hs +++ b/testsuite/tests/dependent/should_compile/T14066a.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeFamilies, TypeInType, ExplicitForAll, GADTs, +{-# LANGUAGE TypeFamilies, DataKinds, PolyKinds, ExplicitForAll, GADTs, UndecidableInstances, RankNTypes, ScopedTypeVariables #-} module T14066a where diff --git a/testsuite/tests/dependent/should_compile/T14556.hs b/testsuite/tests/dependent/should_compile/T14556.hs index eebbdca888..133a9e6a44 100644 --- a/testsuite/tests/dependent/should_compile/T14556.hs +++ b/testsuite/tests/dependent/should_compile/T14556.hs @@ -1,4 +1,5 @@ -{-# Language UndecidableInstances, DataKinds, TypeOperators, KindSignatures, PolyKinds, TypeInType, TypeFamilies, GADTs, LambdaCase, ScopedTypeVariables #-} +{-# Language UndecidableInstances, DataKinds, TypeOperators, PolyKinds, + TypeFamilies, GADTs, LambdaCase, ScopedTypeVariables #-} module T14556 where diff --git a/testsuite/tests/dependent/should_compile/T14720.hs b/testsuite/tests/dependent/should_compile/T14720.hs index c26a184689..0f053756f5 100644 --- a/testsuite/tests/dependent/should_compile/T14720.hs +++ b/testsuite/tests/dependent/should_compile/T14720.hs @@ -3,7 +3,8 @@ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE PolyKinds #-} {-# LANGUAGE TypeOperators #-} module T14720 where diff --git a/testsuite/tests/dependent/should_compile/T14749.hs b/testsuite/tests/dependent/should_compile/T14749.hs index 79bcce66ff..c4480fad0f 100644 --- a/testsuite/tests/dependent/should_compile/T14749.hs +++ b/testsuite/tests/dependent/should_compile/T14749.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE GADTs, TypeOperators, DataKinds, TypeFamilies, TypeInType #-} +{-# LANGUAGE GADTs, TypeOperators, DataKinds, TypeFamilies, PolyKinds #-} module T14749 where diff --git a/testsuite/tests/dependent/should_compile/T14991.hs b/testsuite/tests/dependent/should_compile/T14991.hs index f435c37690..b2f5642ec5 100644 --- a/testsuite/tests/dependent/should_compile/T14991.hs +++ b/testsuite/tests/dependent/should_compile/T14991.hs @@ -1,5 +1,6 @@ {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE PolyKinds #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} module T14991 where diff --git a/testsuite/tests/dependent/should_compile/T9632.hs b/testsuite/tests/dependent/should_compile/T9632.hs index bea468fff3..f2099aa22b 100644 --- a/testsuite/tests/dependent/should_compile/T9632.hs +++ b/testsuite/tests/dependent/should_compile/T9632.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds #-} module T9632 where diff --git a/testsuite/tests/dependent/should_compile/TypeLevelVec.hs b/testsuite/tests/dependent/should_compile/TypeLevelVec.hs index 19f605c8cd..0e2f0c7744 100644 --- a/testsuite/tests/dependent/should_compile/TypeLevelVec.hs +++ b/testsuite/tests/dependent/should_compile/TypeLevelVec.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType, UnicodeSyntax, GADTs, NoImplicitPrelude, +{-# LANGUAGE DataKinds, PolyKinds, UnicodeSyntax, GADTs, NoImplicitPrelude, TypeOperators, TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unticked-promoted-constructors #-} diff --git a/testsuite/tests/dependent/should_compile/all.T b/testsuite/tests/dependent/should_compile/all.T index e153cafe41..40ba2110f9 100644 --- a/testsuite/tests/dependent/should_compile/all.T +++ b/testsuite/tests/dependent/should_compile/all.T @@ -48,3 +48,4 @@ test('T14720', normal, compile, ['']) test('T14066a', normal, compile, ['']) test('T14749', normal, compile, ['']) test('T14991', normal, compile, ['']) +test('DkNameRes', normal, compile, [''])
\ No newline at end of file diff --git a/testsuite/tests/dependent/should_compile/dynamic-paper.hs b/testsuite/tests/dependent/should_compile/dynamic-paper.hs index 1aa4ee54d9..2c284cfeea 100644 --- a/testsuite/tests/dependent/should_compile/dynamic-paper.hs +++ b/testsuite/tests/dependent/should_compile/dynamic-paper.hs @@ -7,7 +7,7 @@ Stephanie Weirich, Richard Eisenberg, and Dimitrios Vytiniotis, 2016. -} {-# LANGUAGE RankNTypes, PolyKinds, TypeOperators, ScopedTypeVariables, GADTs, FlexibleInstances, UndecidableInstances, RebindableSyntax, - DataKinds, MagicHash, AutoDeriveTypeable, TypeInType #-} + DataKinds, MagicHash, AutoDeriveTypeable #-} {-# OPTIONS_GHC -Wno-missing-methods -Wno-redundant-constraints #-} {-# OPTIONS_GHC -Wno-simplifiable-class-constraints #-} -- Because we define a local Typeable class and have @@ -127,7 +127,7 @@ gcast x = do Refl <- eqT (typeRep :: TypeRep a) (typeRep :: TypeRep b) return x -data SameKind :: k -> k -> * +data SameKind :: k -> k -> Type type CheckAppResult = SameKind AppResult AppResultNoKind -- not the most thorough check foo :: AppResult x -> AppResultNoKind x @@ -170,17 +170,20 @@ dynFst :: Dynamic -> Maybe Dynamic dynFst (Dyn (rpab :: TypeRep pab) (x :: pab)) = do App (rpa :: TypeRep pa ) (rb :: TypeRep b) <- splitApp rpab - -- introduces kind |k2|, and types |pa :: k2 -> *|, |b :: k2| + -- introduces kind |k2|, and types |pa :: k2 -> Type|, |b :: k2| App (rp :: TypeRep p ) (ra :: TypeRep a) <- splitApp rpa - -- introduces kind |k1|, and types |p :: k1 -> k2 -> *|, |a :: k1| + -- introduces kind |k1|, and types |p :: k1 -> k2 -> Type|, + -- |a :: k1| Refl <- eqT rp (typeRep :: TypeRep (,)) - -- introduces |p ~ (,)| and |(k1 -> k2 -> *) ~ (* -> * -> *)| + -- introduces |p ~ (,)| and + -- |(k1 -> k2 -> Type) ~ (Type -> Type -> Type)| return (Dyn ra (fst x)) -eqT :: forall k1 k2 (a :: k1) (b :: k2). TypeRep a -> TypeRep b -> Maybe (a :~: b) +eqT :: forall k1 k2 (a :: k1) (b :: k2). + TypeRep a -> TypeRep b -> Maybe (a :~: b) data (a :: k1) :~: (b :: k2) where Refl :: forall k (a :: k). a :~: a @@ -201,11 +204,13 @@ data SomeTypeRep where type TyMapLessTyped = Map SomeTypeRep Dynamic -insertLessTyped :: forall a. Typeable a => a -> TyMapLessTyped -> TyMapLessTyped -insertLessTyped x = Map.insert (SomeTypeRep (typeRep :: TypeRep a)) (toDynamic x) +insertLessTyped :: forall a. Typeable a => a -> TyMapLessTyped -> TyMapLessTyped +insertLessTyped x + = Map.insert (SomeTypeRep (typeRep :: TypeRep a)) (toDynamic x) -lookupLessTyped :: forall a. Typeable a => TyMapLessTyped -> Maybe a -lookupLessTyped = fromDynamic <=< Map.lookup (SomeTypeRep (typeRep :: TypeRep a)) +lookupLessTyped :: forall a. Typeable a => TyMapLessTyped -> Maybe a +lookupLessTyped + = fromDynamic <=< Map.lookup (SomeTypeRep (typeRep :: TypeRep a)) instance Ord SomeTypeRep where compare (SomeTypeRep tr1) (SomeTypeRep tr2) = compareTypeRep tr1 tr2 @@ -329,7 +334,7 @@ dynApplyOld (DynOld trf f) (DynOld trx x) = data DynamicClosed where DynClosed :: TypeRepClosed a -> a -> DynamicClosed -data TypeRepClosed (a :: *) where +data TypeRepClosed (a :: Type) where TBool :: TypeRepClosed Bool TFun :: TypeRepClosed a -> TypeRepClosed b -> TypeRepClosed (a -> b) TProd :: TypeRepClosed a -> TypeRepClosed b -> TypeRepClosed (a, b) diff --git a/testsuite/tests/dependent/should_compile/mkGADTVars.hs b/testsuite/tests/dependent/should_compile/mkGADTVars.hs index 1e74c6980a..9b48e8c395 100644 --- a/testsuite/tests/dependent/should_compile/mkGADTVars.hs +++ b/testsuite/tests/dependent/should_compile/mkGADTVars.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE GADTs, TypeInType #-} +{-# LANGUAGE GADTs, PolyKinds #-} module GADTVars where diff --git a/testsuite/tests/dependent/should_fail/BadTelescope.hs b/testsuite/tests/dependent/should_fail/BadTelescope.hs index acabffec54..11b52f36e2 100644 --- a/testsuite/tests/dependent/should_fail/BadTelescope.hs +++ b/testsuite/tests/dependent/should_fail/BadTelescope.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds #-} module BadTelescope where diff --git a/testsuite/tests/dependent/should_fail/BadTelescope2.hs b/testsuite/tests/dependent/should_fail/BadTelescope2.hs index 6237df4488..b12adbd8e3 100644 --- a/testsuite/tests/dependent/should_fail/BadTelescope2.hs +++ b/testsuite/tests/dependent/should_fail/BadTelescope2.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType, ExplicitForAll #-} +{-# LANGUAGE DataKinds, PolyKinds, ExplicitForAll #-} module BadTelescope2 where diff --git a/testsuite/tests/dependent/should_fail/BadTelescope3.hs b/testsuite/tests/dependent/should_fail/BadTelescope3.hs index 807479f634..470f5fb9fe 100644 --- a/testsuite/tests/dependent/should_fail/BadTelescope3.hs +++ b/testsuite/tests/dependent/should_fail/BadTelescope3.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType, ExplicitForAll #-} +{-# LANGUAGE PolyKinds, ExplicitForAll #-} module BadTelescope3 where diff --git a/testsuite/tests/dependent/should_fail/BadTelescope4.hs b/testsuite/tests/dependent/should_fail/BadTelescope4.hs index 566922a4a0..bdaf674c2f 100644 --- a/testsuite/tests/dependent/should_fail/BadTelescope4.hs +++ b/testsuite/tests/dependent/should_fail/BadTelescope4.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE ExistentialQuantification, TypeInType #-} +{-# LANGUAGE ExistentialQuantification, DataKinds, PolyKinds #-} module BadTelescope4 where import Data.Proxy diff --git a/testsuite/tests/dependent/should_fail/DepFail1.hs b/testsuite/tests/dependent/should_fail/DepFail1.hs index 425a8159c4..26e5d46832 100644 --- a/testsuite/tests/dependent/should_fail/DepFail1.hs +++ b/testsuite/tests/dependent/should_fail/DepFail1.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} module DepFail1 where diff --git a/testsuite/tests/dependent/should_fail/InferDependency.hs b/testsuite/tests/dependent/should_fail/InferDependency.hs index 47957d47d6..c2bec19d44 100644 --- a/testsuite/tests/dependent/should_fail/InferDependency.hs +++ b/testsuite/tests/dependent/should_fail/InferDependency.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} module InferDependency where diff --git a/testsuite/tests/dependent/should_fail/KindLevelsB.hs b/testsuite/tests/dependent/should_fail/KindLevelsB.hs deleted file mode 100644 index 80762978b2..0000000000 --- a/testsuite/tests/dependent/should_fail/KindLevelsB.hs +++ /dev/null @@ -1,9 +0,0 @@ -{-# LANGUAGE DataKinds, PolyKinds #-} - -module KindLevels where - -data A -data B :: A -> * -data C :: B a -> * -data D :: C b -> * -data E :: D c -> * diff --git a/testsuite/tests/dependent/should_fail/KindLevelsB.stderr b/testsuite/tests/dependent/should_fail/KindLevelsB.stderr deleted file mode 100644 index 587eb97bfa..0000000000 --- a/testsuite/tests/dependent/should_fail/KindLevelsB.stderr +++ /dev/null @@ -1,5 +0,0 @@ - -KindLevelsB.hs:7:13: error: - • Expected kind ‘A’, but ‘a’ has kind ‘*’ - • In the first argument of ‘B’, namely ‘a’ - In the kind ‘B a -> *’ diff --git a/testsuite/tests/dependent/should_fail/PromotedClass.hs b/testsuite/tests/dependent/should_fail/PromotedClass.hs index 6c3f415e5d..53d581015d 100644 --- a/testsuite/tests/dependent/should_fail/PromotedClass.hs +++ b/testsuite/tests/dependent/should_fail/PromotedClass.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType, GADTs #-} +{-# LANGUAGE DataKinds, GADTs #-} module PromotedClass where diff --git a/testsuite/tests/dependent/should_fail/RAE_T32a.hs b/testsuite/tests/dependent/should_fail/RAE_T32a.hs index 08a4ad78a8..d71b863f02 100644 --- a/testsuite/tests/dependent/should_fail/RAE_T32a.hs +++ b/testsuite/tests/dependent/should_fail/RAE_T32a.hs @@ -1,34 +1,36 @@ {-# LANGUAGE TemplateHaskell, RankNTypes, TypeOperators, DataKinds, - PolyKinds, TypeFamilies, GADTs, TypeInType #-} + PolyKinds, TypeFamilies, GADTs #-} module RAE_T32a where import Data.Kind -data family Sing (k :: *) :: k -> * +data family Sing (k :: Type) :: k -> Type -data TyArr' (a :: *) (b :: *) :: * -type TyArr (a :: *) (b :: *) = TyArr' a b -> * +data TyArr' (a :: Type) (b :: Type) :: Type +type TyArr (a :: Type) (b :: Type) = TyArr' a b -> Type type family (a :: TyArr k1 k2) @@ (b :: k1) :: k2 -data TyPi' (a :: *) (b :: TyArr a *) :: * -type TyPi (a :: *) (b :: TyArr a *) = TyPi' a b -> * +data TyPi' (a :: Type) (b :: TyArr a Type) :: Type +type TyPi (a :: Type) (b :: TyArr a Type) = TyPi' a b -> Type type family (a :: TyPi k1 k2) @@@ (b :: k1) :: k2 @@ b $(return []) -data MkStar (p :: *) (x :: TyArr' p *) -type instance MkStar p @@ x = * +data MkStar (p :: Type) (x :: TyArr' p Type) +type instance MkStar p @@ x = Type $(return []) -data Sigma (p :: *) (r :: TyPi p (MkStar p)) :: * where +data Sigma (p :: Type) (r :: TyPi p (MkStar p)) :: Type where Sigma :: - forall (p :: *) (r :: TyPi p (MkStar p)) (a :: p) (b :: r @@@ a). - Sing * p -> Sing (TyPi p (MkStar p)) r -> Sing p a -> Sing (r @@@ a) b -> Sigma p r + forall (p :: Type) (r :: TyPi p (MkStar p)) (a :: p) (b :: r @@@ a). + Sing Type p -> Sing (TyPi p (MkStar p)) r -> Sing p a -> + Sing (r @@@ a) b -> Sigma p r $(return []) data instance Sing Sigma (Sigma p r) x where SSigma :: - forall (p :: *) (r :: TyPi p (MkStar p)) (a :: p) (b :: r @@@ a) - (sp :: Sing * p) (sr :: Sing (TyPi p (MkStar p)) r) (sa :: Sing p a) (sb :: Sing (r @@@ a) b). + forall (p :: Type) (r :: TyPi p (MkStar p)) (a :: p) (b :: r @@@ a) + (sp :: Sing Type p) (sr :: Sing (TyPi p (MkStar p)) r) + (sa :: Sing p a) (sb :: Sing (r @@@ a) b). Sing (Sing (r @@@ a) b) sb -> Sing (Sigma p r) ('Sigma sp sr sa sb) diff --git a/testsuite/tests/dependent/should_fail/RAE_T32a.stderr b/testsuite/tests/dependent/should_fail/RAE_T32a.stderr index 046a1e1aa4..41f5d7cd4c 100644 --- a/testsuite/tests/dependent/should_fail/RAE_T32a.stderr +++ b/testsuite/tests/dependent/should_fail/RAE_T32a.stderr @@ -1,10 +1,10 @@ -RAE_T32a.hs:28:1: error: +RAE_T32a.hs:29:1: error: • Expected kind ‘k0 -> *’, but ‘Sing Sigma (Sigma p r)’ has kind ‘*’ • In the data instance declaration for ‘Sing’ -RAE_T32a.hs:28:20: error: +RAE_T32a.hs:29:20: error: • Expecting two more arguments to ‘Sigma’ Expected a type, but ‘Sigma’ has kind @@ -12,7 +12,7 @@ RAE_T32a.hs:28:20: error: • In the first argument of ‘Sing’, namely ‘Sigma’ In the data instance declaration for ‘Sing’ -RAE_T32a.hs:28:27: error: +RAE_T32a.hs:29:27: error: • Expected kind ‘Sigma’, but ‘Sigma p r’ has kind ‘*’ • In the second argument of ‘Sing’, namely ‘(Sigma p r)’ In the data instance declaration for ‘Sing’ diff --git a/testsuite/tests/dependent/should_fail/RenamingStar.hs b/testsuite/tests/dependent/should_fail/RenamingStar.hs index 255021c8d9..f9344b0fd9 100644 --- a/testsuite/tests/dependent/should_fail/RenamingStar.hs +++ b/testsuite/tests/dependent/should_fail/RenamingStar.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE KindSignatures, NoStarIsType #-} module RenamingStar where diff --git a/testsuite/tests/dependent/should_fail/RenamingStar.stderr b/testsuite/tests/dependent/should_fail/RenamingStar.stderr index 5efda699fd..4001811f1f 100644 --- a/testsuite/tests/dependent/should_fail/RenamingStar.stderr +++ b/testsuite/tests/dependent/should_fail/RenamingStar.stderr @@ -1,11 +1,5 @@ RenamingStar.hs:5:13: error: - Not in scope: type constructor or class ‘*’ - NB: With TypeInType, you must import * from Data.Kind - -RenamingStar.hs:5:13: error: - Illegal operator ‘*’ in type ‘*’ - Use TypeOperators to allow operators in types - -RenamingStar.hs:5:13: error: Operator applied to too few arguments: * + With NoStarIsType, ‘*’ is treated as a regular type operator. + Did you mean to use ‘Type’ from Data.Kind instead? diff --git a/testsuite/tests/dependent/should_fail/SelfDep.hs b/testsuite/tests/dependent/should_fail/SelfDep.hs index f54b92752b..22ac9ede98 100644 --- a/testsuite/tests/dependent/should_fail/SelfDep.hs +++ b/testsuite/tests/dependent/should_fail/SelfDep.hs @@ -1,3 +1,5 @@ +{-# LANGUAGE KindSignatures #-} + module SelfDep where data T :: T -> * diff --git a/testsuite/tests/dependent/should_fail/SelfDep.stderr b/testsuite/tests/dependent/should_fail/SelfDep.stderr index f4014f7277..8ac4be8c0c 100644 --- a/testsuite/tests/dependent/should_fail/SelfDep.stderr +++ b/testsuite/tests/dependent/should_fail/SelfDep.stderr @@ -1,5 +1,5 @@ -SelfDep.hs:3:11: error: - Type constructor ‘T’ cannot be used here - (it is defined and used in the same recursive group) - In the kind ‘T -> *’ +SelfDep.hs:5:11: error: + • Type constructor ‘T’ cannot be used here + (it is defined and used in the same recursive group) + • In the kind ‘T -> *’ diff --git a/testsuite/tests/dependent/should_fail/T11407.hs b/testsuite/tests/dependent/should_fail/T11407.hs index 533870f94b..e94eaba1e7 100644 --- a/testsuite/tests/dependent/should_fail/T11407.hs +++ b/testsuite/tests/dependent/should_fail/T11407.hs @@ -1,5 +1,5 @@ {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds #-} module T11407 where import Data.Kind diff --git a/testsuite/tests/dependent/should_fail/T11473.hs b/testsuite/tests/dependent/should_fail/T11473.hs index 12d95caac6..ebfeeb8a13 100644 --- a/testsuite/tests/dependent/should_fail/T11473.hs +++ b/testsuite/tests/dependent/should_fail/T11473.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE PolyKinds, TypeFamilies, MagicHash, DataKinds, TypeInType, RankNTypes #-} +{-# LANGUAGE PolyKinds, TypeFamilies, MagicHash, DataKinds, RankNTypes #-} module T11473 where diff --git a/testsuite/tests/dependent/should_fail/T12081.hs b/testsuite/tests/dependent/should_fail/T12081.hs index f68de420cb..0bf03b1950 100644 --- a/testsuite/tests/dependent/should_fail/T12081.hs +++ b/testsuite/tests/dependent/should_fail/T12081.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds #-} module T12081 where diff --git a/testsuite/tests/dependent/should_fail/T12174.hs b/testsuite/tests/dependent/should_fail/T12174.hs index 29064d6a96..800759d690 100644 --- a/testsuite/tests/dependent/should_fail/T12174.hs +++ b/testsuite/tests/dependent/should_fail/T12174.hs @@ -1,7 +1,7 @@ {-# LANGUAGE DataKinds #-} +{-# LANGUAGE PolyKinds #-} {-# LANGUAGE ExistentialQuantification #-} {-# LANGUAGE KindSignatures #-} -{-# LANGUAGE TypeInType #-} module T12174 where data V a diff --git a/testsuite/tests/dependent/should_fail/T13135.hs b/testsuite/tests/dependent/should_fail/T13135.hs index 772ac78bfa..8f78ccbfb1 100644 --- a/testsuite/tests/dependent/should_fail/T13135.hs +++ b/testsuite/tests/dependent/should_fail/T13135.hs @@ -8,11 +8,11 @@ {-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE PolyKinds #-} -{-# LANGUAGE TypeInType #-} {-# LANGUAGE TypeFamilyDependencies #-} -module T12135 where + +module T13135 where import Data.Kind (Type) diff --git a/testsuite/tests/dependent/should_fail/T13601.hs b/testsuite/tests/dependent/should_fail/T13601.hs index 5e98c7a657..a8fa34d4a0 100644 --- a/testsuite/tests/dependent/should_fail/T13601.hs +++ b/testsuite/tests/dependent/should_fail/T13601.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeFamilies, DataKinds, TypeInType #-} +{-# LANGUAGE TypeFamilies, DataKinds, PolyKinds #-} import GHC.Exts import Prelude (Bool(True,False),Integer,Ordering,undefined) diff --git a/testsuite/tests/dependent/should_fail/T13780a.hs b/testsuite/tests/dependent/should_fail/T13780a.hs index 1f7c95c40a..b7e1510672 100644 --- a/testsuite/tests/dependent/should_fail/T13780a.hs +++ b/testsuite/tests/dependent/should_fail/T13780a.hs @@ -1,6 +1,6 @@ {-# LANGUAGE ExistentialQuantification #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds #-} module T13780a where data family Sing (a :: k) diff --git a/testsuite/tests/dependent/should_fail/T13780b.hs b/testsuite/tests/dependent/should_fail/T13780b.hs index 238e7a1af9..dc6ac89c08 100644 --- a/testsuite/tests/dependent/should_fail/T13780b.hs +++ b/testsuite/tests/dependent/should_fail/T13780b.hs @@ -1,6 +1,7 @@ {-# LANGUAGE GADTs #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE PolyKinds #-} module T13780b where data family Sing (a :: k) diff --git a/testsuite/tests/dependent/should_fail/T13780c.hs b/testsuite/tests/dependent/should_fail/T13780c.hs index eee6436237..78e09f5ef1 100644 --- a/testsuite/tests/dependent/should_fail/T13780c.hs +++ b/testsuite/tests/dependent/should_fail/T13780c.hs @@ -1,6 +1,6 @@ {-# LANGUAGE GADTs #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds #-} module T13780c where import Data.Kind diff --git a/testsuite/tests/dependent/should_fail/T13780c.stderr b/testsuite/tests/dependent/should_fail/T13780c.stderr index 065c700dfc..9a196f4bd7 100644 --- a/testsuite/tests/dependent/should_fail/T13780c.stderr +++ b/testsuite/tests/dependent/should_fail/T13780c.stderr @@ -2,11 +2,13 @@ [2 of 2] Compiling T13780c ( T13780c.hs, T13780c.o ) T13780c.hs:11:16: error: - • Expected kind ‘Sing _1’, but ‘SFalse’ has kind ‘Sing 'False’ + • Data constructor ‘SFalse’ cannot be used here + (it comes from a data family instance) • In the third argument of ‘ElimBool’, namely ‘SFalse’ In the type family declaration for ‘ElimBool’ T13780c.hs:12:16: error: - • Expected kind ‘Sing _1’, but ‘STrue’ has kind ‘Sing 'True’ + • Data constructor ‘STrue’ cannot be used here + (it comes from a data family instance) • In the third argument of ‘ElimBool’, namely ‘STrue’ In the type family declaration for ‘ElimBool’ diff --git a/testsuite/tests/dependent/should_fail/T14066.hs b/testsuite/tests/dependent/should_fail/T14066.hs index 58396df591..709d507a34 100644 --- a/testsuite/tests/dependent/should_fail/T14066.hs +++ b/testsuite/tests/dependent/should_fail/T14066.hs @@ -1,7 +1,7 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE PolyKinds #-} -{-# LANGUAGE TypeInType #-} -{-# LANGUAGE KindSignatures #-} + + module T14066 where diff --git a/testsuite/tests/dependent/should_fail/T14066c.hs b/testsuite/tests/dependent/should_fail/T14066c.hs index b4597d2cec..4dd6f41973 100644 --- a/testsuite/tests/dependent/should_fail/T14066c.hs +++ b/testsuite/tests/dependent/should_fail/T14066c.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeFamilies, TypeInType, UndecidableInstances #-} +{-# LANGUAGE TypeFamilies, DataKinds, PolyKinds, UndecidableInstances #-} module T14066c where diff --git a/testsuite/tests/dependent/should_fail/T14066d.hs b/testsuite/tests/dependent/should_fail/T14066d.hs index ea47644688..dd5676826d 100644 --- a/testsuite/tests/dependent/should_fail/T14066d.hs +++ b/testsuite/tests/dependent/should_fail/T14066d.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE RankNTypes, ScopedTypeVariables, TypeInType #-} +{-# LANGUAGE RankNTypes, ScopedTypeVariables, PolyKinds #-} module T14066d where diff --git a/testsuite/tests/dependent/should_fail/T14066e.hs b/testsuite/tests/dependent/should_fail/T14066e.hs index 9b799e542c..9bce332527 100644 --- a/testsuite/tests/dependent/should_fail/T14066e.hs +++ b/testsuite/tests/dependent/should_fail/T14066e.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE MonoLocalBinds, TypeInType, ScopedTypeVariables #-} +{-# LANGUAGE MonoLocalBinds, PolyKinds, ScopedTypeVariables #-} module T14066e where diff --git a/testsuite/tests/dependent/should_fail/T14066f.hs b/testsuite/tests/dependent/should_fail/T14066f.hs index ccb7ceac0e..b2035f2c3d 100644 --- a/testsuite/tests/dependent/should_fail/T14066f.hs +++ b/testsuite/tests/dependent/should_fail/T14066f.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} module T14066f where diff --git a/testsuite/tests/dependent/should_fail/T14066g.hs b/testsuite/tests/dependent/should_fail/T14066g.hs index df0e03b173..b07a2c36a9 100644 --- a/testsuite/tests/dependent/should_fail/T14066g.hs +++ b/testsuite/tests/dependent/should_fail/T14066g.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds #-} module T14066g where diff --git a/testsuite/tests/dependent/should_fail/T14066h.hs b/testsuite/tests/dependent/should_fail/T14066h.hs index 7e7ecd31c9..a20ae30958 100644 --- a/testsuite/tests/dependent/should_fail/T14066h.hs +++ b/testsuite/tests/dependent/should_fail/T14066h.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE ScopedTypeVariables, TypeInType, MonoLocalBinds #-} +{-# LANGUAGE ScopedTypeVariables, PolyKinds, MonoLocalBinds #-} module T14066h where diff --git a/testsuite/tests/dependent/should_fail/T15245.hs b/testsuite/tests/dependent/should_fail/T15245.hs new file mode 100644 index 0000000000..86d9c221e0 --- /dev/null +++ b/testsuite/tests/dependent/should_fail/T15245.hs @@ -0,0 +1,10 @@ +{-# LANGUAGE TypeFamilies, DataKinds, PolyKinds, TypeApplications #-} + +module T15245 where + +import Type.Reflection + +data family K +data instance K = MkK + +main = print (typeRep @'MkK) diff --git a/testsuite/tests/dependent/should_fail/T15245.stderr b/testsuite/tests/dependent/should_fail/T15245.stderr new file mode 100644 index 0000000000..b41076636f --- /dev/null +++ b/testsuite/tests/dependent/should_fail/T15245.stderr @@ -0,0 +1,7 @@ + +T15245.hs:10:24: error: + • Data constructor ‘MkK’ cannot be used here + (it comes from a data family instance) + • In the type ‘ 'MkK’ + In the first argument of ‘print’, namely ‘(typeRep @ 'MkK)’ + In the expression: print (typeRep @ 'MkK) diff --git a/testsuite/tests/dependent/should_fail/TypeSkolEscape.hs b/testsuite/tests/dependent/should_fail/TypeSkolEscape.hs index 02b7737499..1f958de426 100644 --- a/testsuite/tests/dependent/should_fail/TypeSkolEscape.hs +++ b/testsuite/tests/dependent/should_fail/TypeSkolEscape.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE RankNTypes, PolyKinds, TypeInType #-} +{-# LANGUAGE RankNTypes, PolyKinds #-} -- NB: -fprint-explicit-runtime-reps enabled in all.T module TypeSkolEscape where diff --git a/testsuite/tests/dependent/should_fail/all.T b/testsuite/tests/dependent/should_fail/all.T index 7273445548..5ae037dc54 100644 --- a/testsuite/tests/dependent/should_fail/all.T +++ b/testsuite/tests/dependent/should_fail/all.T @@ -10,7 +10,6 @@ test('BadTelescope4', normal, compile_fail, ['']) test('RenamingStar', normal, compile_fail, ['']) test('T11407', normal, compile_fail, ['']) test('T11334b', normal, compile_fail, ['']) -test('KindLevelsB', normal, compile_fail, ['']) test('T11473', normal, compile_fail, ['']) test('T11471', normal, compile_fail, ['']) test('T12174', normal, compile_fail, ['']) @@ -28,3 +27,4 @@ test('T14066f', normal, compile_fail, ['']) test('T14066g', normal, compile_fail, ['']) test('T14066h', normal, compile_fail, ['']) test('InferDependency', normal, compile_fail, ['']) +test('T15245', normal, compile_fail, ['']) diff --git a/testsuite/tests/dependent/should_run/T11964a.hs b/testsuite/tests/dependent/should_run/T11964a.hs index f0576542b6..2c6993fef0 100644 --- a/testsuite/tests/dependent/should_run/T11964a.hs +++ b/testsuite/tests/dependent/should_run/T11964a.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} module T11964a where import Data.Kind type Star = Type diff --git a/testsuite/tests/deriving/should_compile/T11416.hs b/testsuite/tests/deriving/should_compile/T11416.hs index 4696306107..210d0423b7 100644 --- a/testsuite/tests/deriving/should_compile/T11416.hs +++ b/testsuite/tests/deriving/should_compile/T11416.hs @@ -1,6 +1,7 @@ {-# LANGUAGE DeriveFunctor #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE PolyKinds #-} module T11416 where import Data.Kind diff --git a/testsuite/tests/deriving/should_compile/T11732a.hs b/testsuite/tests/deriving/should_compile/T11732a.hs index 54e1582642..e07fb6aafb 100644 --- a/testsuite/tests/deriving/should_compile/T11732a.hs +++ b/testsuite/tests/deriving/should_compile/T11732a.hs @@ -1,6 +1,6 @@ {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} module T11732a where import GHC.Generics diff --git a/testsuite/tests/deriving/should_compile/T11732b.hs b/testsuite/tests/deriving/should_compile/T11732b.hs index ba71ba5b30..8bd6388063 100644 --- a/testsuite/tests/deriving/should_compile/T11732b.hs +++ b/testsuite/tests/deriving/should_compile/T11732b.hs @@ -1,6 +1,6 @@ {-# LANGUAGE DeriveFunctor #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} module T11732b where data P1 (a :: k) = MkP1 deriving Functor diff --git a/testsuite/tests/deriving/should_compile/T11732c.hs b/testsuite/tests/deriving/should_compile/T11732c.hs index a3034ad867..55553045c0 100644 --- a/testsuite/tests/deriving/should_compile/T11732c.hs +++ b/testsuite/tests/deriving/should_compile/T11732c.hs @@ -1,7 +1,7 @@ {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE MultiParamTypeClasses #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} module T11732c where import Data.Kind diff --git a/testsuite/tests/deriving/should_compile/T14331.hs b/testsuite/tests/deriving/should_compile/T14331.hs index 4fe40fad27..d3b52da9a2 100644 --- a/testsuite/tests/deriving/should_compile/T14331.hs +++ b/testsuite/tests/deriving/should_compile/T14331.hs @@ -2,7 +2,7 @@ {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE PolyKinds #-} {-# LANGUAGE RankNTypes #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} module Bug where class C p q diff --git a/testsuite/tests/deriving/should_compile/T14579.hs b/testsuite/tests/deriving/should_compile/T14579.hs index 19452446d6..518dffe214 100644 --- a/testsuite/tests/deriving/should_compile/T14579.hs +++ b/testsuite/tests/deriving/should_compile/T14579.hs @@ -1,5 +1,6 @@ {-# LANGUAGE GeneralizedNewtypeDeriving #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE PolyKinds #-} module T14579 where import Data.Kind diff --git a/testsuite/tests/deriving/should_compile/T14932.hs b/testsuite/tests/deriving/should_compile/T14932.hs index ece83cc497..bb82071bc2 100644 --- a/testsuite/tests/deriving/should_compile/T14932.hs +++ b/testsuite/tests/deriving/should_compile/T14932.hs @@ -5,7 +5,7 @@ {-# LANGUAGE TypeOperators #-} module T14932 where -import GHC.Exts +import Data.Kind (Constraint, Type) class Zero a where zero :: a @@ -16,7 +16,7 @@ type family All c xs :: Constraint where All c '[] = () All c (x : xs) = (c x, All c xs) -type family Code (a :: *) :: [[*]] +type family Code (a :: Type) :: [[Type]] type instance Code B1 = '[ '[ ] ] data B1 = B1 diff --git a/testsuite/tests/deriving/should_fail/T12512.hs b/testsuite/tests/deriving/should_fail/T12512.hs index 4d4e52c06c..804bfd31da 100644 --- a/testsuite/tests/deriving/should_fail/T12512.hs +++ b/testsuite/tests/deriving/should_fail/T12512.hs @@ -1,7 +1,7 @@ {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE UnboxedSums #-} {-# LANGUAGE UnboxedTuples #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds #-} module T12512 where import GHC.Exts diff --git a/testsuite/tests/deriving/should_fail/T14728a.hs b/testsuite/tests/deriving/should_fail/T14728a.hs index 28cf8e0ffc..5c1d1689dc 100644 --- a/testsuite/tests/deriving/should_fail/T14728a.hs +++ b/testsuite/tests/deriving/should_fail/T14728a.hs @@ -1,7 +1,7 @@ {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds #-} module T14728a where import Data.Functor.Identity diff --git a/testsuite/tests/deriving/should_fail/T14728b.hs b/testsuite/tests/deriving/should_fail/T14728b.hs index 7fdfcb3b5e..653bcb9252 100644 --- a/testsuite/tests/deriving/should_fail/T14728b.hs +++ b/testsuite/tests/deriving/should_fail/T14728b.hs @@ -1,7 +1,7 @@ {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds #-} module T14728b where import Data.Functor.Identity diff --git a/testsuite/tests/deriving/should_fail/T15073.hs b/testsuite/tests/deriving/should_fail/T15073.hs index ecceeed5e1..b1da4bb701 100644 --- a/testsuite/tests/deriving/should_fail/T15073.hs +++ b/testsuite/tests/deriving/should_fail/T15073.hs @@ -1,5 +1,5 @@ {-# LANGUAGE GeneralizedNewtypeDeriving #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds #-} module T15073 where import T15073a diff --git a/testsuite/tests/determinism/determ004/determ004.hs b/testsuite/tests/determinism/determ004/determ004.hs index 756075031d..1361d76a0e 100644 --- a/testsuite/tests/determinism/determ004/determ004.hs +++ b/testsuite/tests/determinism/determ004/determ004.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeOperators +{-# LANGUAGE TypeOperators, StarIsType , DataKinds , PolyKinds , TypeFamilies diff --git a/testsuite/tests/determinism/determ014/A.hs b/testsuite/tests/determinism/determ014/A.hs index fb7a538ebd..35ea20f225 100644 --- a/testsuite/tests/determinism/determ014/A.hs +++ b/testsuite/tests/determinism/determ014/A.hs @@ -11,6 +11,8 @@ module KeyValue where +import Data.Kind + data AccValidation err a = AccFailure err | AccSuccess a data KeyValueError = MissingValue @@ -23,11 +25,11 @@ missing = rpure missingField missingField :: forall x. (WithKeyValueError :. f) x missingField = Compose $ AccFailure [MissingValue] -data Rec :: (u -> *) -> [u] -> * where +data Rec :: (u -> Type) -> [u] -> Type where RNil :: Rec f '[] (:&) :: !(f r) -> !(Rec f rs) -> Rec f (r ': rs) -newtype Compose (f :: l -> *) (g :: k -> l) (x :: k) +newtype Compose (f :: l -> Type) (g :: k -> l) (x :: k) = Compose { getCompose :: f (g x) } type (:.) f g = Compose f g diff --git a/testsuite/tests/driver/T4437.hs b/testsuite/tests/driver/T4437.hs index 24a46384e6..a75990e5ff 100644 --- a/testsuite/tests/driver/T4437.hs +++ b/testsuite/tests/driver/T4437.hs @@ -42,6 +42,7 @@ expectedGhcOnlyExtensions = ["RelaxedLayout", "DerivingVia", "EmptyDataDeriving", "GeneralisedNewtypeDeriving", + "StarIsType", -- FIXME: add StarIsType to cabal "QuantifiedConstraints"] expectedCabalOnlyExtensions :: [String] diff --git a/testsuite/tests/gadt/T7293.hs b/testsuite/tests/gadt/T7293.hs index 26d9188f81..ed82f2a35b 100644 --- a/testsuite/tests/gadt/T7293.hs +++ b/testsuite/tests/gadt/T7293.hs @@ -3,9 +3,11 @@ module T7294 where +import Data.Kind (Type) + data Nat = Zero | Succ Nat -data Vec :: * -> Nat -> * where +data Vec :: Type -> Nat -> Type where Nil :: Vec a Zero Cons :: a -> Vec a n -> Vec a (Succ n) @@ -14,7 +16,7 @@ type instance m :< Zero = False type instance Zero :< Succ n = True type instance Succ n :< Succ m = n :< m -data SNat :: Nat -> * where +data SNat :: Nat -> Type where SZero :: SNat Zero SSucc :: forall (n :: Nat). SNat n -> SNat (Succ n) diff --git a/testsuite/tests/gadt/T7293.stderr b/testsuite/tests/gadt/T7293.stderr index 664f9a09df..87856d4009 100644 --- a/testsuite/tests/gadt/T7293.stderr +++ b/testsuite/tests/gadt/T7293.stderr @@ -1,9 +1,9 @@ -T7293.hs:24:1: error: [-Woverlapping-patterns (in -Wdefault), -Werror=overlapping-patterns] +T7293.hs:26:1: error: [-Woverlapping-patterns (in -Wdefault), -Werror=overlapping-patterns] Pattern match is redundant In an equation for ‘nth’: nth Nil _ = ... -T7293.hs:24:5: error: [-Winaccessible-code (in -Wdefault), -Werror=inaccessible-code] +T7293.hs:26:5: error: [-Winaccessible-code (in -Wdefault), -Werror=inaccessible-code] • Couldn't match type ‘'True’ with ‘'False’ Inaccessible code in a pattern with constructor: Nil :: forall a. Vec a 'Zero, diff --git a/testsuite/tests/gadt/T7294.hs b/testsuite/tests/gadt/T7294.hs index 1c39a2a574..d7615955a7 100644 --- a/testsuite/tests/gadt/T7294.hs +++ b/testsuite/tests/gadt/T7294.hs @@ -4,9 +4,11 @@ module T7294 where +import Data.Kind (Type) + data Nat = Zero | Succ Nat -data Vec :: * -> Nat -> * where +data Vec :: Type -> Nat -> Type where Nil :: Vec a Zero Cons :: a -> Vec a n -> Vec a (Succ n) @@ -15,7 +17,7 @@ type instance m :< Zero = False type instance Zero :< Succ n = True type instance Succ n :< Succ m = n :< m -data SNat :: Nat -> * where +data SNat :: Nat -> Type where SZero :: SNat Zero SSucc :: forall (n :: Nat). SNat n -> SNat (Succ n) diff --git a/testsuite/tests/gadt/T7294.stderr b/testsuite/tests/gadt/T7294.stderr index 63b3e0e3ef..d7b53ee9e2 100644 --- a/testsuite/tests/gadt/T7294.stderr +++ b/testsuite/tests/gadt/T7294.stderr @@ -1,9 +1,9 @@ -T7294.hs:25:1: warning: [-Woverlapping-patterns (in -Wdefault)] +T7294.hs:27:1: warning: [-Woverlapping-patterns (in -Wdefault)] Pattern match is redundant In an equation for ‘nth’: nth Nil _ = ... -T7294.hs:25:5: warning: [-Winaccessible-code (in -Wdefault)] +T7294.hs:27:5: warning: [-Winaccessible-code (in -Wdefault)] • Couldn't match type ‘'True’ with ‘'False’ Inaccessible code in a pattern with constructor: Nil :: forall a. Vec a 'Zero, diff --git a/testsuite/tests/generics/GEq/GEq1.hs b/testsuite/tests/generics/GEq/GEq1.hs index 54867db8ed..1c7e2ca8c3 100644 --- a/testsuite/tests/generics/GEq/GEq1.hs +++ b/testsuite/tests/generics/GEq/GEq1.hs @@ -3,6 +3,7 @@ module Main where +import Data.Kind import GHC.Exts import GHC.Generics hiding (C, D) import GEq1A @@ -18,14 +19,14 @@ data D a = D0 | D1 { d11 :: a, d12 :: (D a) } data (:**:) a b = a :**: b deriving Generic -data family F a b :: * -> * +data family F a b :: Type -> Type data instance F Int b c = F b Int c deriving Generic data U a = U a Addr# Char# Double# Float# Int# Word# deriving Generic -data family UF a b :: * -> * +data family UF a b :: Type -> Type data instance UF Int b c = UF b c Addr# Char# Double# Float# Int# Word# deriving Generic diff --git a/testsuite/tests/ghci/scripts/T10321.hs b/testsuite/tests/ghci/scripts/T10321.hs index 44d264a801..443ebe41a4 100644 --- a/testsuite/tests/ghci/scripts/T10321.hs +++ b/testsuite/tests/ghci/scripts/T10321.hs @@ -5,9 +5,10 @@ module T10321 where +import Data.Kind (Type) import GHC.TypeLits -data Vec :: Nat -> * -> * where +data Vec :: Nat -> Type -> Type where Nil :: Vec 0 a (:>) :: a -> Vec n a -> Vec (n + 1) a diff --git a/testsuite/tests/ghci/scripts/T11252.script b/testsuite/tests/ghci/scripts/T11252.script index 485cd8fa0d..3cec1d348d 100644 --- a/testsuite/tests/ghci/scripts/T11252.script +++ b/testsuite/tests/ghci/scripts/T11252.script @@ -1,3 +1,3 @@ -:set -XTypeInType +:set -XPolyKinds data Proxy1 k (a :: k) = Proxy1 :kind Proxy1 diff --git a/testsuite/tests/ghci/scripts/T11376.script b/testsuite/tests/ghci/scripts/T11376.script index d359b66542..0cda4f02ba 100644 --- a/testsuite/tests/ghci/scripts/T11376.script +++ b/testsuite/tests/ghci/scripts/T11376.script @@ -3,7 +3,7 @@ let { bar :: Show a => a -> b -> a; bar = error "urk" } :type bar @Int :set -fprint-explicit-foralls :type bar @Int -:set -fprint-explicit-kinds -XTypeApplications -XTypeInType +:set -fprint-explicit-kinds -XTypeApplications -XPolyKinds data Prox a = Prox let { prox :: Prox a; prox = Prox } :t prox diff --git a/testsuite/tests/ghci/scripts/T12550.script b/testsuite/tests/ghci/scripts/T12550.script index dad2a47e65..7c07e8f1dd 100644 --- a/testsuite/tests/ghci/scripts/T12550.script +++ b/testsuite/tests/ghci/scripts/T12550.script @@ -1,4 +1,4 @@ -:set -fprint-explicit-foralls -XKindSignatures -XExplicitNamespaces +:set -fprint-explicit-foralls -XKindSignatures -XExplicitNamespaces -XUnicodeSyntax import Data.Kind (type Type) diff --git a/testsuite/tests/ghci/scripts/T13407.script b/testsuite/tests/ghci/scripts/T13407.script index f77fd42afe..3956a3a210 100644 --- a/testsuite/tests/ghci/scripts/T13407.script +++ b/testsuite/tests/ghci/scripts/T13407.script @@ -1,4 +1,4 @@ -:set -XTypeInType -XRankNTypes +:set -XPolyKinds -XRankNTypes import Data.Kind -data Foo :: (* -> *) -> (forall k. k -> *) +data Foo :: (Type -> Type) -> (forall k. k -> Type) :info Foo diff --git a/testsuite/tests/ghci/scripts/T13963.script b/testsuite/tests/ghci/scripts/T13963.script index fdd4d78338..c5e830aad1 100644 --- a/testsuite/tests/ghci/scripts/T13963.script +++ b/testsuite/tests/ghci/scripts/T13963.script @@ -1,4 +1,4 @@ -:set -XTypeInType -XRankNTypes +:set -XPolyKinds -XDataKinds -XRankNTypes import GHC.Exts (TYPE, RuntimeRep(LiftedRep)) type Pair (a :: TYPE rep) (b :: TYPE rep') rep'' = forall (r :: TYPE rep''). (a -> b -> r) :kind Pair diff --git a/testsuite/tests/ghci/scripts/T13988.hs b/testsuite/tests/ghci/scripts/T13988.hs index 54969cad4d..d26135e26d 100644 --- a/testsuite/tests/ghci/scripts/T13988.hs +++ b/testsuite/tests/ghci/scripts/T13988.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType, GADTs #-} +{-# LANGUAGE PolyKinds, GADTs #-} module T13988 where diff --git a/testsuite/tests/ghci/scripts/T7873.script b/testsuite/tests/ghci/scripts/T7873.script index 404c1f5bda..1a358a478e 100644 --- a/testsuite/tests/ghci/scripts/T7873.script +++ b/testsuite/tests/ghci/scripts/T7873.script @@ -1,4 +1,4 @@ -:set -XPolyKinds -XRankNTypes -XGADTs -XTypeInType +:set -XPolyKinds -XRankNTypes -XGADTs data D1 = MkD1 (forall p (a :: k). p a -> Int) data D2 = MkD2 (forall p a. p a -> Int) data D3 = MkD3 (forall k p (a :: k). p a -> Int) diff --git a/testsuite/tests/ghci/scripts/T7939.hs b/testsuite/tests/ghci/scripts/T7939.hs index fbdf883b51..04a1f1a623 100644 --- a/testsuite/tests/ghci/scripts/T7939.hs +++ b/testsuite/tests/ghci/scripts/T7939.hs @@ -1,6 +1,6 @@ {-# LANGUAGE TypeFamilies, PolyKinds, DataKinds, TypeOperators #-} - module T7939 where +import Data.Kind (Type) class Foo a where type Bar a b @@ -22,6 +22,6 @@ type family K a where K '[] = Nothing K (h ': t) = Just h -type family L (a :: k) (b :: *) :: k where +type family L (a :: k) (b :: Type) :: k where L Int Int = Bool L Maybe Bool = IO diff --git a/testsuite/tests/ghci/scripts/T8357.hs b/testsuite/tests/ghci/scripts/T8357.hs index 82a34afdc6..322ec11e19 100644 --- a/testsuite/tests/ghci/scripts/T8357.hs +++ b/testsuite/tests/ghci/scripts/T8357.hs @@ -5,11 +5,12 @@ {-# LANGUAGE TypeOperators #-} module T8357 where +import Data.Kind (Type) import GHC.TypeLits data (:::) (sy :: Symbol) ty data Key (sy :: Symbol) -data Rec (rs :: [*]) +data Rec (rs :: [Type]) (*=) :: Key sy -> ty -> Rec '[sy ::: ty] (*=) = undefined @@ -17,7 +18,7 @@ data Rec (rs :: [*]) (.*.) :: (Union xs ys ~ rs) => Rec xs -> Rec ys -> Rec rs (.*.) = undefined -type family Union (xs :: [*]) (ys :: [*]) :: [*] where +type family Union (xs :: [Type]) (ys :: [Type]) :: [Type] where Union ((sy ::: t) ': xs) ys = (sy ::: t) ': Union xs ys Union '[] ys = ys @@ -30,4 +31,4 @@ fBar = undefined foo = fFoo *= "foo" bar = fBar *= "bar" -both = foo .*. bar
\ No newline at end of file +both = foo .*. bar diff --git a/testsuite/tests/indexed-types/should_compile/HO.hs b/testsuite/tests/indexed-types/should_compile/HO.hs index a674469518..dceb4ebef5 100644 --- a/testsuite/tests/indexed-types/should_compile/HO.hs +++ b/testsuite/tests/indexed-types/should_compile/HO.hs @@ -3,9 +3,10 @@ module HO where import Data.IORef +import Data.Kind -type family SMRef (m::(* -> *)) :: * -> * -type family SMMonad (r::(* -> *)) :: * -> * +type family SMRef (m::(Type -> Type)) :: Type -> Type +type family SMMonad (r::(Type -> Type)) :: Type -> Type type instance SMRef IO = IORef type instance SMMonad IORef = IO diff --git a/testsuite/tests/indexed-types/should_compile/Numerals.hs b/testsuite/tests/indexed-types/should_compile/Numerals.hs index 17fb30c3ca..cb3c8e8e56 100644 --- a/testsuite/tests/indexed-types/should_compile/Numerals.hs +++ b/testsuite/tests/indexed-types/should_compile/Numerals.hs @@ -3,8 +3,9 @@ {-# LANGUAGE GADTs #-} {-# LANGUAGE TypeOperators #-} -module Numerals -where +module Numerals where + +import Data.Kind data Z -- empty data type data S a -- empty data type @@ -19,7 +20,7 @@ two = Succ one three = Succ two -- etc...we really would like some nicer syntax here -type family (:+:) n m :: * +type family (:+:) n m :: Type type instance Z :+: m = m type instance (S n) :+: m = S (n :+: m) diff --git a/testsuite/tests/indexed-types/should_compile/T12369.hs b/testsuite/tests/indexed-types/should_compile/T12369.hs index 51cee7df03..7f4e097ca0 100644 --- a/testsuite/tests/indexed-types/should_compile/T12369.hs +++ b/testsuite/tests/indexed-types/should_compile/T12369.hs @@ -1,11 +1,11 @@ -{-# language PolyKinds, KindSignatures, GADTs, TypeFamilies, RankNTypes, TypeInType, +{-# language DataKinds, PolyKinds, GADTs, TypeFamilies, RankNTypes, TypeOperators, ConstraintKinds #-} module T12369 where import Data.Kind -data family Fix :: (k -> *) -> k +data family Fix :: (k -> Type) -> k newtype instance Fix f = In { out :: f (Fix f) } type FREE k = (k -> Constraint) -> (k -> k) diff --git a/testsuite/tests/indexed-types/should_compile/T12522b.hs b/testsuite/tests/indexed-types/should_compile/T12522b.hs index 75013823c9..7ed8ae19ff 100644 --- a/testsuite/tests/indexed-types/should_compile/T12522b.hs +++ b/testsuite/tests/indexed-types/should_compile/T12522b.hs @@ -3,15 +3,17 @@ {-# LANGUAGE TypeFamilyDependencies #-} {-# LANGUAGE TypeOperators #-} -module T12522a where +module T12522b where + +import Data.Kind (Type) newtype I a = I a -type family Curry (as :: [*]) b = f | f -> as b where +type family Curry (as :: [Type]) b = f | f -> as b where Curry '[] b = I b Curry (a:as) b = a -> Curry as b -data Uncurried (as :: [*]) b +data Uncurried (as :: [Type]) b def :: Curry as b -> Uncurried as b def = undefined diff --git a/testsuite/tests/indexed-types/should_compile/T12938.hs b/testsuite/tests/indexed-types/should_compile/T12938.hs index 1c8f47e8cb..262a66b406 100644 --- a/testsuite/tests/indexed-types/should_compile/T12938.hs +++ b/testsuite/tests/indexed-types/should_compile/T12938.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType, TypeFamilies #-} +{-# LANGUAGE PolyKinds, TypeFamilies #-} module Bug where diff --git a/testsuite/tests/indexed-types/should_compile/T13244.hs b/testsuite/tests/indexed-types/should_compile/T13244.hs index e1a65b99ef..6cfea014a4 100644 --- a/testsuite/tests/indexed-types/should_compile/T13244.hs +++ b/testsuite/tests/indexed-types/should_compile/T13244.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE MagicHash, DataKinds, PolyKinds, TypeInType, TypeFamilies #-} +{-# LANGUAGE MagicHash, DataKinds, PolyKinds, TypeFamilies #-} module T13244 where diff --git a/testsuite/tests/indexed-types/should_compile/T13398b.hs b/testsuite/tests/indexed-types/should_compile/T13398b.hs index 0689ef39d6..703a81763a 100644 --- a/testsuite/tests/indexed-types/should_compile/T13398b.hs +++ b/testsuite/tests/indexed-types/should_compile/T13398b.hs @@ -1,5 +1,5 @@ {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds #-} module T13398b where import GHC.TypeLits diff --git a/testsuite/tests/indexed-types/should_compile/T14162.hs b/testsuite/tests/indexed-types/should_compile/T14162.hs index 136c161cbf..1eccbffc86 100644 --- a/testsuite/tests/indexed-types/should_compile/T14162.hs +++ b/testsuite/tests/indexed-types/should_compile/T14162.hs @@ -1,4 +1,5 @@ -{-# Language TypeOperators, KindSignatures, DataKinds, PolyKinds, TypeFamilies, GADTs, TypeInType #-} +{-# Language TypeOperators, KindSignatures, DataKinds, PolyKinds, + TypeFamilies, GADTs #-} module T14162 where diff --git a/testsuite/tests/indexed-types/should_compile/T14554.hs b/testsuite/tests/indexed-types/should_compile/T14554.hs index f6b382252a..6049b1934e 100644 --- a/testsuite/tests/indexed-types/should_compile/T14554.hs +++ b/testsuite/tests/indexed-types/should_compile/T14554.hs @@ -1,6 +1,5 @@ -{-# Language UndecidableInstances, DataKinds, TypeOperators, - KindSignatures, PolyKinds, TypeInType, TypeFamilies, - GADTs, LambdaCase, ScopedTypeVariables #-} +{-# Language UndecidableInstances, DataKinds, TypeOperators, TypeFamilies, + PolyKinds, GADTs, LambdaCase, ScopedTypeVariables #-} module T14554 where diff --git a/testsuite/tests/indexed-types/should_compile/T15122.hs b/testsuite/tests/indexed-types/should_compile/T15122.hs index 44a3c0523f..c05bd3a8a0 100644 --- a/testsuite/tests/indexed-types/should_compile/T15122.hs +++ b/testsuite/tests/indexed-types/should_compile/T15122.hs @@ -7,7 +7,7 @@ import Data.Kind import Data.Proxy data IsStar (a :: k) where - IsStar :: IsStar (a :: *) + IsStar :: IsStar (a :: Type) type family F (a :: k) :: k diff --git a/testsuite/tests/indexed-types/should_compile/T2219.hs b/testsuite/tests/indexed-types/should_compile/T2219.hs index ea7d442f74..9778524a7a 100644 --- a/testsuite/tests/indexed-types/should_compile/T2219.hs +++ b/testsuite/tests/indexed-types/should_compile/T2219.hs @@ -2,6 +2,8 @@ module Test where +import Data.Kind (Type) + data Zero data Succ a @@ -15,7 +17,7 @@ data Fin n fn where data Nil data a ::: b -type family Lookup ts fn :: * +type family Lookup ts fn :: Type type instance Lookup (t ::: ts) FZ = t type instance Lookup (t ::: ts) (FS fn) = Lookup ts fn diff --git a/testsuite/tests/indexed-types/should_compile/T7585.hs b/testsuite/tests/indexed-types/should_compile/T7585.hs index a21c04dbf7..2cf23d267e 100644 --- a/testsuite/tests/indexed-types/should_compile/T7585.hs +++ b/testsuite/tests/indexed-types/should_compile/T7585.hs @@ -3,11 +3,13 @@ module Bug where -data SBool :: Bool -> * where +import Data.Kind + +data SBool :: Bool -> Type where SFalse :: SBool False STrue :: SBool True -data SList :: [Bool] -> * where +data SList :: [Bool] -> Type where SNil :: SList '[] SCons :: SBool h -> SList t -> SList (h ': t) @@ -17,4 +19,4 @@ type family (a :: [k]) :==: (b :: [k]) :: Bool where a :==: b = False (%==%) :: SList ls1 -> SList ls2 -> SBool (ls1 :==: ls2) -SNil %==% (SCons _ _) = SFalse
\ No newline at end of file +SNil %==% (SCons _ _) = SFalse diff --git a/testsuite/tests/indexed-types/should_compile/T9747.hs b/testsuite/tests/indexed-types/should_compile/T9747.hs index 3b1c47703e..aefffd55f6 100644 --- a/testsuite/tests/indexed-types/should_compile/T9747.hs +++ b/testsuite/tests/indexed-types/should_compile/T9747.hs @@ -4,13 +4,14 @@ module T9747 where import Data.List (intercalate) import Data.Proxy -import GHC.Exts (Constraint) +import Data.Kind (Type, Constraint) -data HList :: [*] -> * where +data HList :: [Type] -> Type where Nil :: HList '[] Cons :: a -> HList as -> HList (a ': as) -type family HListAll (c :: * -> Constraint) (ts :: [*]) :: Constraint where +type family HListAll (c :: Type -> Constraint) + (ts :: [Type]) :: Constraint where HListAll c '[] = () HListAll c (t ': ts) = (c t, HListAll c ts) @@ -27,7 +28,7 @@ test = showHList (Cons (2::Int) (Cons (3.1 :: Float) (Cons 'c' Nil))) -type family ConFun (t :: *) :: * -> Constraint +type family ConFun (t :: Type) :: Type -> Constraint data Tag type instance ConFun Tag = Group diff --git a/testsuite/tests/indexed-types/should_fail/T12522a.hs b/testsuite/tests/indexed-types/should_fail/T12522a.hs index eb855f4171..e8b12c4d1e 100644 --- a/testsuite/tests/indexed-types/should_fail/T12522a.hs +++ b/testsuite/tests/indexed-types/should_fail/T12522a.hs @@ -5,13 +5,15 @@ module T12522a where +import Data.Kind (Type) + newtype I a = I a -type family Curry (as :: [*]) b = f | f -> as b where +type family Curry (as :: [Type]) b = f | f -> as b where Curry '[] b = I b Curry (a:as) b = a -> Curry as b -data Uncurried (as :: [*]) b +data Uncurried (as :: [Type]) b def :: Curry as b -> Uncurried as b def = undefined diff --git a/testsuite/tests/indexed-types/should_fail/T12522a.stderr b/testsuite/tests/indexed-types/should_fail/T12522a.stderr index d7a4f06b8c..44e60d2194 100644 --- a/testsuite/tests/indexed-types/should_fail/T12522a.stderr +++ b/testsuite/tests/indexed-types/should_fail/T12522a.stderr @@ -1,10 +1,10 @@ -T12522a.hs:20:26: error: +T12522a.hs:22:26: error: • Ambiguous type variable ‘a0’ arising from a use of ‘show’ prevents the constraint ‘(Show a0)’ from being solved. Relevant bindings include - n :: a0 (bound at T12522a.hs:20:15) - test :: Uncurried '[a0, [Char]] [Char] (bound at T12522a.hs:20:1) + n :: a0 (bound at T12522a.hs:22:15) + test :: Uncurried '[a0, [Char]] [Char] (bound at T12522a.hs:22:1) Probable fix: use a type annotation to specify what ‘a0’ should be. These potential instances exist: instance Show Ordering -- Defined in ‘GHC.Show’ diff --git a/testsuite/tests/indexed-types/should_fail/T13674.hs b/testsuite/tests/indexed-types/should_fail/T13674.hs index 4d9a81d8a5..2951406241 100644 --- a/testsuite/tests/indexed-types/should_fail/T13674.hs +++ b/testsuite/tests/indexed-types/should_fail/T13674.hs @@ -11,11 +11,11 @@ module T13674 where import Data.Proxy -import GHC.Exts (Constraint) +import Data.Kind (Constraint, Type) import GHC.TypeLits import Unsafe.Coerce (unsafeCoerce) -data Dict :: Constraint -> * where +data Dict :: Constraint -> Type where Dict :: a => Dict a infixr 9 :- diff --git a/testsuite/tests/indexed-types/should_fail/T13784.hs b/testsuite/tests/indexed-types/should_fail/T13784.hs index 36c72b98af..48982769a2 100644 --- a/testsuite/tests/indexed-types/should_fail/T13784.hs +++ b/testsuite/tests/indexed-types/should_fail/T13784.hs @@ -4,9 +4,10 @@ module T13784 where +import Data.Kind (Type) import Data.Monoid ((<>)) -data Product :: [*] -> * where +data Product :: [Type] -> Type where (:*) :: a -> Product as -> Product (a : as) Unit :: Product '[] infixr 5 :* @@ -18,7 +19,7 @@ instance (Show a, Show (Product as)) => Show (Product (a : as)) where show (a :* as) = show a <> " :* " <> show as class Divideable a as where - type Divide a as :: [*] + type Divide a as :: [Type] divide :: Product as -> (a, Product (Divide a as)) instance Divideable a (a : as) where diff --git a/testsuite/tests/indexed-types/should_fail/T13784.stderr b/testsuite/tests/indexed-types/should_fail/T13784.stderr index ee4ec20b63..63edf0482f 100644 --- a/testsuite/tests/indexed-types/should_fail/T13784.stderr +++ b/testsuite/tests/indexed-types/should_fail/T13784.stderr @@ -1,9 +1,9 @@ -T13784.hs:28:28: error: +T13784.hs:29:28: error: • Couldn't match type ‘as’ with ‘a : Divide a as’ ‘as’ is a rigid type variable bound by the instance declaration - at T13784.hs:24:10-30 + at T13784.hs:25:10-30 Expected type: Product (Divide a (a : as)) Actual type: Product as1 • In the expression: as @@ -11,9 +11,9 @@ T13784.hs:28:28: error: In an equation for ‘divide’: divide (a :* as) = (a, as) • Relevant bindings include divide :: Product (a : as) -> (a, Product (Divide a (a : as))) - (bound at T13784.hs:28:5) + (bound at T13784.hs:29:5) -T13784.hs:32:24: error: +T13784.hs:33:24: error: • Couldn't match type ‘Product (a : as0)’ with ‘(b, Product (Divide b (a : as)))’ Expected type: (b, Product (Divide b (a : as))) @@ -23,9 +23,9 @@ T13784.hs:32:24: error: In the instance declaration for ‘Divideable b (a : as)’ • Relevant bindings include divide :: Product (a : as) -> (b, Product (Divide b (a : as))) - (bound at T13784.hs:32:5) + (bound at T13784.hs:33:5) -T13784.hs:32:29: error: +T13784.hs:33:29: error: • Couldn't match type ‘(a0, Product (Divide a0 as))’ with ‘Product as0’ Expected type: Product as0 @@ -35,4 +35,4 @@ T13784.hs:32:29: error: In an equation for ‘divide’: divide (a :* as) = a :* divide as • Relevant bindings include divide :: Product (a : as) -> (b, Product (Divide b (a : as))) - (bound at T13784.hs:32:5) + (bound at T13784.hs:33:5) diff --git a/testsuite/tests/indexed-types/should_fail/T13877.hs b/testsuite/tests/indexed-types/should_fail/T13877.hs index ee5f16b1f3..89c79a60e3 100644 --- a/testsuite/tests/indexed-types/should_fail/T13877.hs +++ b/testsuite/tests/indexed-types/should_fail/T13877.hs @@ -6,7 +6,7 @@ {-# LANGUAGE Trustworthy #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds #-} {-# LANGUAGE TypeOperators #-} module T13877 where @@ -17,8 +17,8 @@ data instance Sing (z :: [a]) where SNil :: Sing '[] SCons :: Sing x -> Sing xs -> Sing (x:xs) -data TyFun :: * -> * -> * -type a ~> b = TyFun a b -> * +data TyFun :: Type -> Type -> Type +type a ~> b = TyFun a b -> Type infixr 0 ~> type family Apply (f :: k1 ~> k2) (x :: k1) :: k2 diff --git a/testsuite/tests/indexed-types/should_fail/T13972.hs b/testsuite/tests/indexed-types/should_fail/T13972.hs index 8a43e2016f..a0a203d30a 100644 --- a/testsuite/tests/indexed-types/should_fail/T13972.hs +++ b/testsuite/tests/indexed-types/should_fail/T13972.hs @@ -1,6 +1,6 @@ +{-# LANGUAGE DataKinds #-} {-# LANGUAGE PolyKinds #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} module Bug where import Data.Kind diff --git a/testsuite/tests/indexed-types/should_fail/T14175.hs b/testsuite/tests/indexed-types/should_fail/T14175.hs index 9d259fe704..2e84b730e1 100644 --- a/testsuite/tests/indexed-types/should_fail/T14175.hs +++ b/testsuite/tests/indexed-types/should_fail/T14175.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeFamilies, PolyKinds, TypeInType #-} +{-# LANGUAGE TypeFamilies, DataKinds, PolyKinds #-} module T14175 where diff --git a/testsuite/tests/indexed-types/should_fail/T14246.hs b/testsuite/tests/indexed-types/should_fail/T14246.hs index cf947e816e..6ae8760c84 100644 --- a/testsuite/tests/indexed-types/should_fail/T14246.hs +++ b/testsuite/tests/indexed-types/should_fail/T14246.hs @@ -2,7 +2,7 @@ module T14246 where -import Data.Kind -- necessary for * +import Data.Kind data Nat = Z | S Nat @@ -16,8 +16,8 @@ data L type family KLN (n :: k) :: Nat where KLN (f :: v -> k) = S (KLN (forall t. f t)) - KLN (f :: *) = Z + KLN (f :: Type) = Z -type family Reveal (n :: k) (l :: Vect (KLN n) L) :: * where +type family Reveal (n :: k) (l :: Vect (KLN n) L) :: Type where Reveal (f :: v -> k) (Cons (Label (t :: v)) l) = Reveal (f t) l - Reveal (a :: *) Nil = a + Reveal (a :: Type) Nil = a diff --git a/testsuite/tests/indexed-types/should_fail/T14246.stderr b/testsuite/tests/indexed-types/should_fail/T14246.stderr index 0f0a3e579d..4bb45d6399 100644 --- a/testsuite/tests/indexed-types/should_fail/T14246.stderr +++ b/testsuite/tests/indexed-types/should_fail/T14246.stderr @@ -18,7 +18,7 @@ T14246.hs:22:67: error: In the type ‘Reveal (f t) l’ In the type family declaration for ‘Reveal’ -T14246.hs:23:21: error: +T14246.hs:23:24: error: • Expected kind ‘Vect (KLN a) L’, but ‘Nil’ has kind ‘Vect 'Z L’ • In the second argument of ‘Reveal’, namely ‘Nil’ In the type family declaration for ‘Reveal’ diff --git a/testsuite/tests/indexed-types/should_fail/T14369.hs b/testsuite/tests/indexed-types/should_fail/T14369.hs index 98afa3ecd6..ef5166c318 100644 --- a/testsuite/tests/indexed-types/should_fail/T14369.hs +++ b/testsuite/tests/indexed-types/should_fail/T14369.hs @@ -4,7 +4,7 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilyDependencies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds #-} {-# LANGUAGE TypeOperators #-} module T14369 where diff --git a/testsuite/tests/indexed-types/should_fail/T2544.hs b/testsuite/tests/indexed-types/should_fail/T2544.hs index 2150cd5775..34a79f4db8 100644 --- a/testsuite/tests/indexed-types/should_fail/T2544.hs +++ b/testsuite/tests/indexed-types/should_fail/T2544.hs @@ -4,10 +4,12 @@ module T2544 where +import Data.Kind + data (:|:) a b = Inl a | Inr b class Ix i where - type IxMap i :: * -> * + type IxMap i :: Type -> Type empty :: IxMap i [Int] data BiApp a b c = BiApp (a c) (b c) diff --git a/testsuite/tests/indexed-types/should_fail/T2544.stderr b/testsuite/tests/indexed-types/should_fail/T2544.stderr index d5a9c56516..93d7746066 100644 --- a/testsuite/tests/indexed-types/should_fail/T2544.stderr +++ b/testsuite/tests/indexed-types/should_fail/T2544.stderr @@ -1,5 +1,5 @@ -T2544.hs:17:12: error: +T2544.hs:19:12: error: • Couldn't match type ‘IxMap r’ with ‘IxMap i1’ Expected type: IxMap (l :|: r) [Int] Actual type: BiApp (IxMap l) (IxMap i1) [Int] @@ -9,9 +9,9 @@ T2544.hs:17:12: error: In an equation for ‘empty’: empty = BiApp empty empty In the instance declaration for ‘Ix (l :|: r)’ • Relevant bindings include - empty :: IxMap (l :|: r) [Int] (bound at T2544.hs:17:4) + empty :: IxMap (l :|: r) [Int] (bound at T2544.hs:19:4) -T2544.hs:17:18: error: +T2544.hs:19:18: error: • Couldn't match type ‘IxMap i0’ with ‘IxMap l’ Expected type: IxMap l [Int] Actual type: IxMap i0 [Int] @@ -21,4 +21,4 @@ T2544.hs:17:18: error: In the expression: BiApp empty empty In an equation for ‘empty’: empty = BiApp empty empty • Relevant bindings include - empty :: IxMap (l :|: r) [Int] (bound at T2544.hs:17:4) + empty :: IxMap (l :|: r) [Int] (bound at T2544.hs:19:4) diff --git a/testsuite/tests/indexed-types/should_fail/T3330c.hs b/testsuite/tests/indexed-types/should_fail/T3330c.hs index e6c4dfbb30..d84c51d5d5 100644 --- a/testsuite/tests/indexed-types/should_fail/T3330c.hs +++ b/testsuite/tests/indexed-types/should_fail/T3330c.hs @@ -2,9 +2,11 @@ module T3330c where +import Data.Kind + data (f :+: g) x = Inl (f x) | Inr (g x) -data R :: (* -> *) -> * where +data R :: (Type -> Type) -> Type where RSum :: R f -> R g -> R (f :+: g) class Rep f where @@ -13,7 +15,7 @@ class Rep f where instance (Rep f, Rep g) => Rep (f :+: g) where rep = RSum rep rep -type family Der (f :: * -> *) :: * -> * +type family Der (f :: Type -> Type) :: Type -> Type type instance Der (f :+: g) = Der f :+: Der g plug :: Rep f => Der f x -> x -> f x @@ -55,4 +57,4 @@ Hence f1 ~ f1 x --}
\ No newline at end of file +-} diff --git a/testsuite/tests/indexed-types/should_fail/T3330c.stderr b/testsuite/tests/indexed-types/should_fail/T3330c.stderr index 829bca1400..4ef5ae66a8 100644 --- a/testsuite/tests/indexed-types/should_fail/T3330c.stderr +++ b/testsuite/tests/indexed-types/should_fail/T3330c.stderr @@ -1,5 +1,5 @@ -T3330c.hs:23:43: error: +T3330c.hs:25:43: error: • Couldn't match kind ‘* -> *’ with ‘*’ When matching types f1 :: * -> * @@ -10,7 +10,7 @@ T3330c.hs:23:43: error: In the first argument of ‘Inl’, namely ‘(plug rf df x)’ In the expression: Inl (plug rf df x) • Relevant bindings include - x :: x (bound at T3330c.hs:23:29) - df :: f1 x (bound at T3330c.hs:23:25) - rf :: R f1 (bound at T3330c.hs:23:13) - plug' :: R f -> Der f x -> x -> f x (bound at T3330c.hs:23:1) + x :: x (bound at T3330c.hs:25:29) + df :: f1 x (bound at T3330c.hs:25:25) + rf :: R f1 (bound at T3330c.hs:25:13) + plug' :: R f -> Der f x -> x -> f x (bound at T3330c.hs:25:1) diff --git a/testsuite/tests/indexed-types/should_fail/T4174.hs b/testsuite/tests/indexed-types/should_fail/T4174.hs index 784c0baa08..a4f105ff86 100644 --- a/testsuite/tests/indexed-types/should_fail/T4174.hs +++ b/testsuite/tests/indexed-types/should_fail/T4174.hs @@ -2,6 +2,8 @@ module T4174 where +import Data.Kind (Type) + data True data False @@ -10,17 +12,17 @@ data Minor1 data GHC6'8 m data GHC6'10 m -type family a :<=: b :: {-Bool-}* +type family a :<=: b :: {-Bool-} Type type instance GHC6'10 m1 :<=: GHC6'8 m2 = False type a :>=: b = b :<=: a data Way ghcVersion tablesNextToCode profiling threaded -type family GHCVersion way :: {-GHCVersion-} * +type family GHCVersion way :: {-GHCVersion-} Type type instance GHCVersion (Way v n p t) = v -type family Threaded way :: {-Bool-} * +type family Threaded way :: {-Bool-} Type type instance Threaded (Way v n p t) = t data Field w s t @@ -30,7 +32,7 @@ data RtsSpinLock field :: String -> m (Field w a b) field = undefined -type family WayOf (m :: * -> *) :: * +type family WayOf (m :: Type -> Type) :: Type sync_large_objects :: (Monad m, (GHCVersion (WayOf m) :>=: GHC6'10 Minor1) ~ True, @@ -57,4 +59,4 @@ testcase = sync_large_objects == (GHC6'10 Minor1 :<=: GHC6'8 minor) ~ True == False ~ True --}
\ No newline at end of file +-} diff --git a/testsuite/tests/indexed-types/should_fail/T4174.stderr b/testsuite/tests/indexed-types/should_fail/T4174.stderr index db5008dd1e..ccc88ced1e 100644 --- a/testsuite/tests/indexed-types/should_fail/T4174.stderr +++ b/testsuite/tests/indexed-types/should_fail/T4174.stderr @@ -1,16 +1,16 @@ -T4174.hs:42:12: error: +T4174.hs:44:12: error: • Couldn't match type ‘b’ with ‘RtsSpinLock’ ‘b’ is a rigid type variable bound by the type signature for: testcase :: forall (m :: * -> *) minor n t p a b. Monad m => m (Field (Way (GHC6'8 minor) n t p) a b) - at T4174.hs:41:1-63 + at T4174.hs:43:1-63 Expected type: m (Field (Way (GHC6'8 minor) n t p) a b) Actual type: m (Field (WayOf m) SmStep RtsSpinLock) • In the expression: sync_large_objects In an equation for ‘testcase’: testcase = sync_large_objects • Relevant bindings include testcase :: m (Field (Way (GHC6'8 minor) n t p) a b) - (bound at T4174.hs:42:1) + (bound at T4174.hs:44:1) diff --git a/testsuite/tests/indexed-types/should_fail/T7786.hs b/testsuite/tests/indexed-types/should_fail/T7786.hs index 2a5c7f5983..33a74f233f 100644 --- a/testsuite/tests/indexed-types/should_fail/T7786.hs +++ b/testsuite/tests/indexed-types/should_fail/T7786.hs @@ -4,7 +4,9 @@ FlexibleContexts, ScopedTypeVariables #-} module T7786 where +import Data.Kind (Type) import GHC.TypeLits(Symbol,Nat) + data family Sing (a :: k) data Inventory a = Empty | More (Inventory a) a @@ -33,7 +35,7 @@ under Root' post = post under (Symic'' ks k) post = under ks post `Symic''` k under (Numic'' ks k) post = under ks post `Numic''` k -data Database :: Inventory [KeySegment] -> * where +data Database :: Inventory [KeySegment] -> Type where Clean :: Database Empty Record :: (k `KeyNotIn` i) => Database i -> Sing k -> () -> Database (More i k) Sub :: ((sub `UnderDisjoint` k) i) => Database i -> Sing k -> Database sub -> Database ((sub `BuriedUnder` k) i) diff --git a/testsuite/tests/indexed-types/should_fail/T7786.stderr b/testsuite/tests/indexed-types/should_fail/T7786.stderr index 89984ca6b0..af9ca89b7e 100644 --- a/testsuite/tests/indexed-types/should_fail/T7786.stderr +++ b/testsuite/tests/indexed-types/should_fail/T7786.stderr @@ -1,5 +1,5 @@ -T7786.hs:94:41: error: +T7786.hs:96:41: error: • Couldn't match type ‘xxx’ with ‘Intersect (BuriedUnder sub k 'Empty) inv’ Expected type: Maybe (Sing xxx) @@ -14,36 +14,35 @@ T7786.hs:94:41: error: = do Nil :: Sing xxx <- foogle db k sub return $ Sub db k sub • Relevant bindings include - sub :: Database sub (bound at T7786.hs:94:13) - k :: Sing k (bound at T7786.hs:94:11) - db :: Database inv (bound at T7786.hs:94:8) + sub :: Database sub (bound at T7786.hs:96:13) + k :: Sing k (bound at T7786.hs:96:11) + db :: Database inv (bound at T7786.hs:96:8) addSub :: Database inv -> Sing k -> Database sub -> Maybe (Database (BuriedUnder sub k inv)) - (bound at T7786.hs:94:1) + (bound at T7786.hs:96:1) -T7786.hs:95:31: error: +T7786.hs:97:31: error: • Could not deduce: Intersect (BuriedUnder sub k 'Empty) inv - ~ - 'Empty + ~ 'Empty arising from a use of ‘Sub’ from the context: xxx ~ 'Empty bound by a pattern with constructor: Nil :: forall a. Sing 'Empty, in a pattern binding in 'do' block - at T7786.hs:94:22-24 + at T7786.hs:96:22-24 • In the second argument of ‘($)’, namely ‘Sub db k sub’ In a stmt of a 'do' block: return $ Sub db k sub In the expression: do Nil :: Sing xxx <- foogle db k sub return $ Sub db k sub • Relevant bindings include - sub :: Database sub (bound at T7786.hs:94:13) - k :: Sing k (bound at T7786.hs:94:11) - db :: Database inv (bound at T7786.hs:94:8) + sub :: Database sub (bound at T7786.hs:96:13) + k :: Sing k (bound at T7786.hs:96:11) + db :: Database inv (bound at T7786.hs:96:8) addSub :: Database inv -> Sing k -> Database sub -> Maybe (Database (BuriedUnder sub k inv)) - (bound at T7786.hs:94:1) + (bound at T7786.hs:96:1) diff --git a/testsuite/tests/indexed-types/should_fail/T7967.hs b/testsuite/tests/indexed-types/should_fail/T7967.hs index 093f133563..ba828d60d0 100644 --- a/testsuite/tests/indexed-types/should_fail/T7967.hs +++ b/testsuite/tests/indexed-types/should_fail/T7967.hs @@ -1,21 +1,23 @@ {-# LANGUAGE TypeFamilies, DataKinds, TypeOperators, GADTs #-} module T7967 where +import Data.Kind (Type) + data Nat = Zero | Succ Nat -data SNat :: Nat -> * where +data SNat :: Nat -> Type where SZero :: SNat Zero SSucc :: SNat n -> SNat (Succ n) -data HList :: [*] -> * where +data HList :: [Type] -> Type where HNil :: HList '[] HCons :: h -> HList t -> HList (h ': t) -data Index :: Nat -> [*] -> * where +data Index :: Nat -> [Type] -> Type where IZero :: Index Zero (h ': t) ISucc :: Index n l -> Index (Succ n) (h ': l) -type family Lookup (n :: Nat) (l :: [*]) :: * +type family Lookup (n :: Nat) (l :: [Type]) :: Type type instance Lookup Zero (h ': t) = h type instance Lookup (Succ n) (h ': t) = Lookup n t diff --git a/testsuite/tests/indexed-types/should_fail/T7967.stderr b/testsuite/tests/indexed-types/should_fail/T7967.stderr index 44fb064594..63d2ba8328 100644 --- a/testsuite/tests/indexed-types/should_fail/T7967.stderr +++ b/testsuite/tests/indexed-types/should_fail/T7967.stderr @@ -1,7 +1,7 @@ -T7967.hs:31:26: - Couldn't match type ‘h0 : t0’ with ‘'[]’ - Expected type: Index n l - Actual type: Index 'Zero (h0 : t0) - In the expression: IZero - In an equation for ‘sNatToIndex’: sNatToIndex SZero HNil = IZero +T7967.hs:33:26: error: + • Couldn't match type ‘h0 : t0’ with ‘'[]’ + Expected type: Index n l + Actual type: Index 'Zero (h0 : t0) + • In the expression: IZero + In an equation for ‘sNatToIndex’: sNatToIndex SZero HNil = IZero diff --git a/testsuite/tests/indexed-types/should_fail/T9036.hs b/testsuite/tests/indexed-types/should_fail/T9036.hs index 550adb4b0a..54af6f6714 100644 --- a/testsuite/tests/indexed-types/should_fail/T9036.hs +++ b/testsuite/tests/indexed-types/should_fail/T9036.hs @@ -2,14 +2,15 @@ {-# LANGUAGE TypeOperators #-} {-# LANGUAGE TypeFamilies #-} - module T9036 where +import Data.Kind + class UncurryM t where - type GetMonad t :: * -> * + type GetMonad t :: Type -> Type class Curry a b where - type Curried a b :: * + type Curried a b :: Type gSimple :: String -> String -> [String] gSimple = simpleLogger (return ()) diff --git a/testsuite/tests/indexed-types/should_fail/T9036.stderr b/testsuite/tests/indexed-types/should_fail/T9036.stderr index 6f2c162f1a..151dfb7f2d 100644 --- a/testsuite/tests/indexed-types/should_fail/T9036.stderr +++ b/testsuite/tests/indexed-types/should_fail/T9036.stderr @@ -1,5 +1,5 @@ -T9036.hs:17:17: error: +T9036.hs:18:17: error: • Couldn't match type ‘Curried t0 [t0]’ with ‘Curried t [t]’ Expected type: Maybe (GetMonad t after) -> Curried t [t] Actual type: Maybe (GetMonad t0 after) -> Curried t0 [t0] diff --git a/testsuite/tests/indexed-types/should_fail/T9662.hs b/testsuite/tests/indexed-types/should_fail/T9662.hs index 2972eca22f..8563c90403 100644 --- a/testsuite/tests/indexed-types/should_fail/T9662.hs +++ b/testsuite/tests/indexed-types/should_fail/T9662.hs @@ -4,10 +4,12 @@ module T9662 where +import Data.Kind (Type) + data Exp a = Exp data (a:.b) = a:.b -type family Plain e :: * +type family Plain e :: Type type instance Plain (Exp a) = a type instance Plain (a:.b) = Plain a :. Plain b diff --git a/testsuite/tests/indexed-types/should_fail/T9662.stderr b/testsuite/tests/indexed-types/should_fail/T9662.stderr index 54b05665a3..4f35d92b5e 100644 --- a/testsuite/tests/indexed-types/should_fail/T9662.stderr +++ b/testsuite/tests/indexed-types/should_fail/T9662.stderr @@ -1,11 +1,11 @@ -T9662.hs:47:8: error: +T9662.hs:49:8: error: • Couldn't match type ‘k’ with ‘Int’ ‘k’ is a rigid type variable bound by the type signature for: test :: forall sh k m n. Shape (((sh :. k) :. m) :. n) -> Shape (((sh :. m) :. n) :. k) - at T9662.hs:44:1-50 + at T9662.hs:46:1-50 Expected type: Exp (((sh :. m) :. n) :. k) -> Exp (((sh :. m) :. n) :. k) Actual type: Exp @@ -32,4 +32,4 @@ T9662.hs:47:8: error: • Relevant bindings include test :: Shape (((sh :. k) :. m) :. n) -> Shape (((sh :. m) :. n) :. k) - (bound at T9662.hs:45:1) + (bound at T9662.hs:47:1) diff --git a/testsuite/tests/indexed-types/should_run/T11465a.hs b/testsuite/tests/indexed-types/should_run/T11465a.hs index d3626cf198..93d72545e3 100644 --- a/testsuite/tests/indexed-types/should_run/T11465a.hs +++ b/testsuite/tests/indexed-types/should_run/T11465a.hs @@ -2,7 +2,6 @@ {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE MagicHash #-} {-# LANGUAGE DataKinds #-} -{-# LANGUAGE TypeInType #-} import GHC.Exts import GHC.Types diff --git a/testsuite/tests/overloadedrecflds/should_run/overloadedrecflds_generics.hs b/testsuite/tests/overloadedrecflds/should_run/overloadedrecflds_generics.hs index c2b4bd6120..56f93fb7af 100644 --- a/testsuite/tests/overloadedrecflds/should_run/overloadedrecflds_generics.hs +++ b/testsuite/tests/overloadedrecflds/should_run/overloadedrecflds_generics.hs @@ -17,14 +17,15 @@ import GHC.Generics import Data.Data import Data.Proxy +import Data.Kind -type family FirstSelector (f :: * -> *) :: Meta +type family FirstSelector (f :: Type -> Type) :: Meta type instance FirstSelector (M1 D x f) = FirstSelector f type instance FirstSelector (M1 C x f) = FirstSelector f type instance FirstSelector (a :*: b) = FirstSelector a type instance FirstSelector (M1 S s f) = s -data SelectorProxy (s :: Meta) (f :: * -> *) a = SelectorProxy +data SelectorProxy (s :: Meta) (f :: Type -> Type) a = SelectorProxy type SelectorProxy' (s :: Meta) = SelectorProxy s Proxy () -- Extract the first selector name using GHC.Generics diff --git a/testsuite/tests/overloadedrecflds/should_run/overloadedrecfldsrun07.hs b/testsuite/tests/overloadedrecflds/should_run/overloadedrecfldsrun07.hs index c492ac87a1..fdd81c213d 100644 --- a/testsuite/tests/overloadedrecflds/should_run/overloadedrecfldsrun07.hs +++ b/testsuite/tests/overloadedrecflds/should_run/overloadedrecfldsrun07.hs @@ -1,10 +1,10 @@ {-# LANGUAGE DataKinds + , PolyKinds , FlexibleContexts , FlexibleInstances , GADTs , MultiParamTypeClasses , OverloadedLabels - , TypeInType , ScopedTypeVariables , TypeApplications , TypeOperators @@ -13,13 +13,13 @@ import GHC.OverloadedLabels import GHC.Records -import GHC.TypeLits hiding (type (*)) +import GHC.TypeLits import Data.Kind data Label (x :: Symbol) = Label data Labelled x a = Label x := a -data Rec :: forall k. [(k, *)] -> * where +data Rec :: forall k. [(k, Type)] -> Type where Nil :: Rec '[] (:>) :: Labelled x a -> Rec xs -> Rec ('(x, a) ': xs) infixr 5 :> diff --git a/testsuite/tests/parser/should_compile/DumpParsedAst.stderr b/testsuite/tests/parser/should_compile/DumpParsedAst.stderr index ea9becb6c5..a1765035fb 100644 --- a/testsuite/tests/parser/should_compile/DumpParsedAst.stderr +++ b/testsuite/tests/parser/should_compile/DumpParsedAst.stderr @@ -80,77 +80,56 @@ (HsParTy (NoExt) ({ DumpParsedAst.hs:8:11-16 } - (HsAppsTy + (HsOpTy (NoExt) - [({ DumpParsedAst.hs:8:11 } - (HsAppPrefix - (NoExt) - ({ DumpParsedAst.hs:8:11 } - (HsTyVar - (NoExt) - (NotPromoted) - ({ DumpParsedAst.hs:8:11 } - (Unqual - {OccName: a})))))) - ,({ DumpParsedAst.hs:8:13 } - (HsAppInfix - (NoExt) - ({ DumpParsedAst.hs:8:13 } - (Exact - {Name: :})))) - ,({ DumpParsedAst.hs:8:15-16 } - (HsAppPrefix - (NoExt) - ({ DumpParsedAst.hs:8:15-16 } - (HsTyVar - (NoExt) - (NotPromoted) - ({ DumpParsedAst.hs:8:15-16 } - (Unqual - {OccName: as}))))))]))))] - (Prefix) - ({ DumpParsedAst.hs:8:21-36 } - (HsAppsTy - (NoExt) - [({ DumpParsedAst.hs:8:21-24 } - (HsAppPrefix - (NoExt) - ({ DumpParsedAst.hs:8:21-24 } + ({ DumpParsedAst.hs:8:11 } (HsTyVar (NoExt) (NotPromoted) - ({ DumpParsedAst.hs:8:21-24 } + ({ DumpParsedAst.hs:8:11 } (Unqual - {OccName: Succ})))))) - ,({ DumpParsedAst.hs:8:26-36 } - (HsAppPrefix - (NoExt) - ({ DumpParsedAst.hs:8:26-36 } - (HsParTy + {OccName: a})))) + ({ DumpParsedAst.hs:8:13 } + (Exact + {Name: :})) + ({ DumpParsedAst.hs:8:15-16 } + (HsTyVar (NoExt) - ({ DumpParsedAst.hs:8:27-35 } - (HsAppsTy - (NoExt) - [({ DumpParsedAst.hs:8:27-32 } - (HsAppPrefix - (NoExt) - ({ DumpParsedAst.hs:8:27-32 } - (HsTyVar - (NoExt) - (NotPromoted) - ({ DumpParsedAst.hs:8:27-32 } - (Unqual - {OccName: Length})))))) - ,({ DumpParsedAst.hs:8:34-35 } - (HsAppPrefix - (NoExt) - ({ DumpParsedAst.hs:8:34-35 } - (HsTyVar - (NoExt) - (NotPromoted) - ({ DumpParsedAst.hs:8:34-35 } - (Unqual - {OccName: as}))))))]))))))]))))) + (NotPromoted) + ({ DumpParsedAst.hs:8:15-16 } + (Unqual + {OccName: as}))))))))] + (Prefix) + ({ DumpParsedAst.hs:8:21-36 } + (HsAppTy + (NoExt) + ({ DumpParsedAst.hs:8:21-24 } + (HsTyVar + (NoExt) + (NotPromoted) + ({ DumpParsedAst.hs:8:21-24 } + (Unqual + {OccName: Succ})))) + ({ DumpParsedAst.hs:8:26-36 } + (HsParTy + (NoExt) + ({ DumpParsedAst.hs:8:27-35 } + (HsAppTy + (NoExt) + ({ DumpParsedAst.hs:8:27-32 } + (HsTyVar + (NoExt) + (NotPromoted) + ({ DumpParsedAst.hs:8:27-32 } + (Unqual + {OccName: Length})))) + ({ DumpParsedAst.hs:8:34-35 } + (HsTyVar + (NoExt) + (NotPromoted) + ({ DumpParsedAst.hs:8:34-35 } + (Unqual + {OccName: as}))))))))))))) ,({ DumpParsedAst.hs:9:3-24 } (HsIB (NoExt) diff --git a/testsuite/tests/parser/should_compile/DumpRenamedAst.hs b/testsuite/tests/parser/should_compile/DumpRenamedAst.hs index 493b736df5..bf3e372461 100644 --- a/testsuite/tests/parser/should_compile/DumpRenamedAst.hs +++ b/testsuite/tests/parser/should_compile/DumpRenamedAst.hs @@ -1,5 +1,5 @@ {-# LANGUAGE DataKinds, GADTs, PolyKinds, RankNTypes, TypeOperators, - TypeFamilies #-} + TypeFamilies, StarIsType #-} module DumpRenamedAst where diff --git a/testsuite/tests/parser/should_compile/DumpRenamedAst.stderr b/testsuite/tests/parser/should_compile/DumpRenamedAst.stderr index 4ca996fde0..673b391d7f 100644 --- a/testsuite/tests/parser/should_compile/DumpRenamedAst.stderr +++ b/testsuite/tests/parser/should_compile/DumpRenamedAst.stderr @@ -69,10 +69,10 @@ {Name: DumpRenamedAst.Peano}) (HsQTvs (HsQTvsRn - [] - {NameSet: - []}) - []) + [] + {NameSet: + []}) + []) (Prefix) (HsDataDefn (NoExt) @@ -124,8 +124,8 @@ [({ DumpRenamedAst.hs:9:3-36 } (HsIB (HsIBRn - [{Name: a} - ,{Name: as}] + [{Name: a} + ,{Name: as}] (True)) (FamEqn (NoExt) @@ -182,7 +182,7 @@ ,({ DumpRenamedAst.hs:10:3-24 } (HsIB (HsIBRn - [] + [] (True)) (FamEqn (NoExt) @@ -204,7 +204,7 @@ {Name: DumpRenamedAst.Length}) (HsQTvs (HsQTvsRn - [{Name: k}] + [{Name: k}] {NameSet: []}) [({ DumpRenamedAst.hs:8:20-30 } @@ -246,10 +246,10 @@ {Name: DumpRenamedAst.Nat}) (HsQTvs (HsQTvsRn - [{Name: k}] - {NameSet: - []}) - []) + [{Name: k}] + {NameSet: + []}) + []) (Prefix) ({ DumpRenamedAst.hs:12:17-30 } (KindSig @@ -273,11 +273,9 @@ ({ DumpRenamedAst.hs:12:25 } {Name: k}))) ({ DumpRenamedAst.hs:12:30 } - (HsTyVar + (HsStarTy (NoExt) - (NotPromoted) - ({ DumpRenamedAst.hs:12:30 } - {Name: GHC.Types.*}))))))))) + (False))))))))) (Nothing))))] [] [({ DumpRenamedAst.hs:(15,1)-(16,45) } @@ -286,8 +284,8 @@ (DataFamInstDecl (HsIB (HsIBRn - [{Name: k} - ,{Name: a}] + [{Name: k} + ,{Name: a}] (True)) (FamEqn (NoExt) @@ -312,11 +310,9 @@ ({ DumpRenamedAst.hs:15:28 } {Name: k}))) ({ DumpRenamedAst.hs:15:33 } - (HsTyVar + (HsStarTy (NoExt) - (NotPromoted) - ({ DumpRenamedAst.hs:15:33 } - {Name: GHC.Types.*})))))))] + (False)))))))] (Prefix) (HsDataDefn (NoExt) @@ -341,17 +337,13 @@ ({ DumpRenamedAst.hs:15:40 } {Name: k}))) ({ DumpRenamedAst.hs:15:45 } - (HsTyVar + (HsStarTy (NoExt) - (NotPromoted) - ({ DumpRenamedAst.hs:15:45 } - {Name: GHC.Types.*}))))))) + (False))))))) ({ DumpRenamedAst.hs:15:51 } - (HsTyVar + (HsStarTy (NoExt) - (NotPromoted) - ({ DumpRenamedAst.hs:15:51 } - {Name: GHC.Types.*})))))) + (False)))))) [({ DumpRenamedAst.hs:16:3-45 } (ConDeclGADT (NoExt) @@ -360,11 +352,11 @@ (False) (HsQTvs (HsQTvsRn - [{Name: f} - ,{Name: g}] - {NameSet: - []}) - []) + [{Name: f} + ,{Name: g}] + {NameSet: + []}) + []) (Nothing) (PrefixCon [({ DumpRenamedAst.hs:16:10-34 } diff --git a/testsuite/tests/parser/should_compile/T10379.hs b/testsuite/tests/parser/should_compile/T10379.hs index 1eb5f96382..eb231c4415 100644 --- a/testsuite/tests/parser/should_compile/T10379.hs +++ b/testsuite/tests/parser/should_compile/T10379.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE KindSignatures, GADTs, DataKinds, TypeOperators #-} +{-# LANGUAGE KindSignatures, GADTs, DataKinds #-} module Foo where data Foo1 :: [*] -> * where diff --git a/testsuite/tests/parser/should_fail/T15209.stderr b/testsuite/tests/parser/should_fail/T15209.stderr index f5418fab74..9d1e151cf2 100644 --- a/testsuite/tests/parser/should_fail/T15209.stderr +++ b/testsuite/tests/parser/should_fail/T15209.stderr @@ -1,2 +1,2 @@ -T15209.hs:6:8: error: Not in scope: type constructor or class ‘~#’ +T15209.hs:6:10: error: Not in scope: type constructor or class ‘~#’ diff --git a/testsuite/tests/parser/should_fail/all.T b/testsuite/tests/parser/should_fail/all.T index 9fcc3ba97d..1e71e40420 100644 --- a/testsuite/tests/parser/should_fail/all.T +++ b/testsuite/tests/parser/should_fail/all.T @@ -120,3 +120,8 @@ test('NumericUnderscoresFail1', grep_errmsg(r'^NumericUnderscoresFail1.hs:'), compile_fail, ['']) test('InfixAppPatErr', normal, compile_fail, ['']) + +test('typeops_A', normal, compile_fail, ['']) +test('typeops_B', normal, compile_fail, ['']) +test('typeops_C', normal, compile_fail, ['']) +test('typeops_D', normal, compile_fail, ['']) diff --git a/testsuite/tests/parser/should_fail/readFail036.hs b/testsuite/tests/parser/should_fail/readFail036.hs index 2bb23149dd..15afd980f8 100644 --- a/testsuite/tests/parser/should_fail/readFail036.hs +++ b/testsuite/tests/parser/should_fail/readFail036.hs @@ -1,5 +1,5 @@ - module Foo where -data Foo (a :: *) = Foo a +import Data.Kind (Type) +data Foo (a :: Type) = Foo a diff --git a/testsuite/tests/parser/should_fail/readFail036.stderr b/testsuite/tests/parser/should_fail/readFail036.stderr index 0d22eb8363..a66afacacf 100644 --- a/testsuite/tests/parser/should_fail/readFail036.stderr +++ b/testsuite/tests/parser/should_fail/readFail036.stderr @@ -1,5 +1,5 @@ -readFail036.hs:4:16: - Illegal kind signature: ‘*’ +readFail036.hs:5:16: error: + Illegal kind signature: ‘Type’ Perhaps you intended to use KindSignatures In the data type declaration for ‘Foo’ diff --git a/testsuite/tests/parser/should_fail/typeops_A.hs b/testsuite/tests/parser/should_fail/typeops_A.hs new file mode 100644 index 0000000000..abd7f528c6 --- /dev/null +++ b/testsuite/tests/parser/should_fail/typeops_A.hs @@ -0,0 +1 @@ +type X = 1 + diff --git a/testsuite/tests/parser/should_fail/typeops_A.stderr b/testsuite/tests/parser/should_fail/typeops_A.stderr new file mode 100644 index 0000000000..69f7aac6be --- /dev/null +++ b/testsuite/tests/parser/should_fail/typeops_A.stderr @@ -0,0 +1,2 @@ + +typeops_A.hs:1:12: error: Operator applied to too few arguments: + diff --git a/testsuite/tests/parser/should_fail/typeops_B.hs b/testsuite/tests/parser/should_fail/typeops_B.hs new file mode 100644 index 0000000000..ac65f872de --- /dev/null +++ b/testsuite/tests/parser/should_fail/typeops_B.hs @@ -0,0 +1 @@ +type X = + 1 diff --git a/testsuite/tests/parser/should_fail/typeops_B.stderr b/testsuite/tests/parser/should_fail/typeops_B.stderr new file mode 100644 index 0000000000..030516a27f --- /dev/null +++ b/testsuite/tests/parser/should_fail/typeops_B.stderr @@ -0,0 +1,2 @@ + +typeops_B.hs:1:10: error: Operator applied to too few arguments: + diff --git a/testsuite/tests/parser/should_fail/typeops_C.hs b/testsuite/tests/parser/should_fail/typeops_C.hs new file mode 100644 index 0000000000..e55838934a --- /dev/null +++ b/testsuite/tests/parser/should_fail/typeops_C.hs @@ -0,0 +1 @@ +type X = 1 + + 2 diff --git a/testsuite/tests/parser/should_fail/typeops_C.stderr b/testsuite/tests/parser/should_fail/typeops_C.stderr new file mode 100644 index 0000000000..280323bb67 --- /dev/null +++ b/testsuite/tests/parser/should_fail/typeops_C.stderr @@ -0,0 +1,2 @@ + +typeops_C.hs:1:12: error: Operator applied to too few arguments: + diff --git a/testsuite/tests/parser/should_fail/typeops_D.hs b/testsuite/tests/parser/should_fail/typeops_D.hs new file mode 100644 index 0000000000..655b2f15f0 --- /dev/null +++ b/testsuite/tests/parser/should_fail/typeops_D.hs @@ -0,0 +1 @@ +type X = + diff --git a/testsuite/tests/parser/should_fail/typeops_D.stderr b/testsuite/tests/parser/should_fail/typeops_D.stderr new file mode 100644 index 0000000000..0ce7e29559 --- /dev/null +++ b/testsuite/tests/parser/should_fail/typeops_D.stderr @@ -0,0 +1,2 @@ + +typeops_D.hs:1:10: error: Operator applied to too few arguments: + diff --git a/testsuite/tests/partial-sigs/should_compile/T15039a.hs b/testsuite/tests/partial-sigs/should_compile/T15039a.hs index 7f32cb8488..3430f14bb9 100644 --- a/testsuite/tests/partial-sigs/should_compile/T15039a.hs +++ b/testsuite/tests/partial-sigs/should_compile/T15039a.hs @@ -2,7 +2,7 @@ {-# LANGUAGE GADTs #-} {-# LANGUAGE PartialTypeSignatures #-} {-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} {-# LANGUAGE TypeOperators #-} {-# OPTIONS_GHC -fdefer-type-errors #-} module T15039a where @@ -15,13 +15,13 @@ import Data.Type.Equality data Dict :: Constraint -> Type where Dict :: c => Dict c -ex1 :: Dict ((a :: *) ~ (b :: *)) -> () +ex1 :: Dict ((a :: Type) ~ (b :: Type)) -> () ex1 (Dict :: _) = () -ex2 :: Dict ((a :: *) ~~ (b :: *)) -> () +ex2 :: Dict ((a :: Type) ~~ (b :: Type)) -> () ex2 (Dict :: _) = () -ex3 :: Dict ((a :: *) ~~ (b :: k)) -> () +ex3 :: Dict ((a :: Type) ~~ (b :: k)) -> () ex3 (Dict :: _) = () -- Don't know how to make GHC print an unlifted, nominal equality in an error @@ -29,10 +29,10 @@ ex3 (Dict :: _) = () -- -- ex4, ex5 :: ??? -ex6 :: Dict (Coercible (a :: *) (b :: *)) -> () +ex6 :: Dict (Coercible (a :: Type) (b :: Type)) -> () ex6 (Dict :: _) = () -ex7 :: _ => Coercion (a :: *) (b :: *) +ex7 :: _ => Coercion (a :: Type) (b :: Type) ex7 = Coercion -- Don't know how to make GHC print an unlifted, heterogeneous, diff --git a/testsuite/tests/partial-sigs/should_compile/T15039a.stderr b/testsuite/tests/partial-sigs/should_compile/T15039a.stderr index c45e82e5ef..d9c8e1056f 100644 --- a/testsuite/tests/partial-sigs/should_compile/T15039a.stderr +++ b/testsuite/tests/partial-sigs/should_compile/T15039a.stderr @@ -4,7 +4,7 @@ T15039a.hs:19:14: warning: [-Wpartial-type-signatures (in -Wdefault)] Where: ‘a’, ‘b’ are rigid type variables bound by the type signature for: ex1 :: forall a b. Dict (a ~ b) -> () - at T15039a.hs:18:1-39 + at T15039a.hs:18:1-45 • In a pattern type signature: _ In the pattern: Dict :: _ In an equation for ‘ex1’: ex1 (Dict :: _) = () @@ -16,7 +16,7 @@ T15039a.hs:22:14: warning: [-Wpartial-type-signatures (in -Wdefault)] Where: ‘a’, ‘b’ are rigid type variables bound by the type signature for: ex2 :: forall a b. Dict (a ~ b) -> () - at T15039a.hs:21:1-40 + at T15039a.hs:21:1-46 • In a pattern type signature: _ In the pattern: Dict :: _ In an equation for ‘ex2’: ex2 (Dict :: _) = () @@ -28,7 +28,7 @@ T15039a.hs:25:14: warning: [-Wpartial-type-signatures (in -Wdefault)] Where: ‘a’, ‘b’, ‘k’ are rigid type variables bound by the type signature for: ex3 :: forall k a (b :: k). Dict (a ~~ b) -> () - at T15039a.hs:24:1-40 + at T15039a.hs:24:1-43 • In a pattern type signature: _ In the pattern: Dict :: _ In an equation for ‘ex3’: ex3 (Dict :: _) = () @@ -40,7 +40,7 @@ T15039a.hs:33:14: warning: [-Wpartial-type-signatures (in -Wdefault)] Where: ‘a’, ‘b’ are rigid type variables bound by the type signature for: ex6 :: forall a b. Dict (Coercible a b) -> () - at T15039a.hs:32:1-47 + at T15039a.hs:32:1-53 • In a pattern type signature: _ In the pattern: Dict :: _ In an equation for ‘ex6’: ex6 (Dict :: _) = () @@ -52,4 +52,5 @@ T15039a.hs:35:8: warning: [-Wpartial-type-signatures (in -Wdefault)] Where: ‘a’, ‘b’ are rigid type variables bound by the inferred type of ex7 :: Coercible a b => Coercion a b at T15039a.hs:36:1-14 - • In the type signature: ex7 :: _ => Coercion (a :: *) (b :: *) + • In the type signature: + ex7 :: _ => Coercion (a :: Type) (b :: Type) diff --git a/testsuite/tests/partial-sigs/should_compile/T15039b.hs b/testsuite/tests/partial-sigs/should_compile/T15039b.hs index 4966059912..5069e04655 100644 --- a/testsuite/tests/partial-sigs/should_compile/T15039b.hs +++ b/testsuite/tests/partial-sigs/should_compile/T15039b.hs @@ -2,7 +2,7 @@ {-# LANGUAGE GADTs #-} {-# LANGUAGE PartialTypeSignatures #-} {-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} {-# LANGUAGE TypeOperators #-} {-# OPTIONS_GHC -fdefer-type-errors #-} module T15039b where @@ -15,13 +15,13 @@ import Data.Type.Equality data Dict :: Constraint -> Type where Dict :: c => Dict c -ex1 :: Dict ((a :: *) ~ (b :: *)) -> () +ex1 :: Dict ((a :: Type) ~ (b :: Type)) -> () ex1 (Dict :: _) = () -ex2 :: Dict ((a :: *) ~~ (b :: *)) -> () +ex2 :: Dict ((a :: Type) ~~ (b :: Type)) -> () ex2 (Dict :: _) = () -ex3 :: Dict ((a :: *) ~~ (b :: k)) -> () +ex3 :: Dict ((a :: Type) ~~ (b :: k)) -> () ex3 (Dict :: _) = () -- Don't know how to make GHC print an unlifted, nominal equality in an error @@ -29,10 +29,10 @@ ex3 (Dict :: _) = () -- -- ex4, ex5 :: ??? -ex6 :: Dict (Coercible (a :: *) (b :: *)) -> () +ex6 :: Dict (Coercible (a :: Type) (b :: Type)) -> () ex6 (Dict :: _) = () -ex7 :: _ => Coercion (a :: *) (b :: *) +ex7 :: _ => Coercion (a :: Type) (b :: Type) ex7 = Coercion -- Don't know how to make GHC print an unlifted, heterogeneous, diff --git a/testsuite/tests/partial-sigs/should_compile/T15039b.stderr b/testsuite/tests/partial-sigs/should_compile/T15039b.stderr index dffde1c8f1..020c253516 100644 --- a/testsuite/tests/partial-sigs/should_compile/T15039b.stderr +++ b/testsuite/tests/partial-sigs/should_compile/T15039b.stderr @@ -1,56 +1,62 @@ T15039b.hs:19:14: warning: [-Wpartial-type-signatures (in -Wdefault)] - • Found type wildcard ‘_’ standing for ‘Dict ((a :: *) ~ (b :: *))’ + • Found type wildcard ‘_’ + standing for ‘Dict ((a :: Type) ~ (b :: Type))’ Where: ‘a’, ‘b’ are rigid type variables bound by the type signature for: - ex1 :: forall a b. Dict ((a :: *) ~ (b :: *)) -> () - at T15039b.hs:18:1-39 + ex1 :: forall a b. Dict ((a :: Type) ~ (b :: Type)) -> () + at T15039b.hs:18:1-45 • In a pattern type signature: _ In the pattern: Dict :: _ In an equation for ‘ex1’: ex1 (Dict :: _) = () • Relevant bindings include - ex1 :: Dict ((a :: *) ~ (b :: *)) -> () (bound at T15039b.hs:19:1) + ex1 :: Dict ((a :: Type) ~ (b :: Type)) -> () + (bound at T15039b.hs:19:1) T15039b.hs:22:14: warning: [-Wpartial-type-signatures (in -Wdefault)] - • Found type wildcard ‘_’ standing for ‘Dict ((a :: *) ~ (b :: *))’ + • Found type wildcard ‘_’ + standing for ‘Dict ((a :: Type) ~ (b :: Type))’ Where: ‘a’, ‘b’ are rigid type variables bound by the type signature for: - ex2 :: forall a b. Dict ((a :: *) ~ (b :: *)) -> () - at T15039b.hs:21:1-40 + ex2 :: forall a b. Dict ((a :: Type) ~ (b :: Type)) -> () + at T15039b.hs:21:1-46 • In a pattern type signature: _ In the pattern: Dict :: _ In an equation for ‘ex2’: ex2 (Dict :: _) = () • Relevant bindings include - ex2 :: Dict ((a :: *) ~ (b :: *)) -> () (bound at T15039b.hs:22:1) + ex2 :: Dict ((a :: Type) ~ (b :: Type)) -> () + (bound at T15039b.hs:22:1) T15039b.hs:25:14: warning: [-Wpartial-type-signatures (in -Wdefault)] • Found type wildcard ‘_’ - standing for ‘Dict ((a :: *) ~~ (b :: k))’ + standing for ‘Dict ((a :: Type) ~~ (b :: k))’ Where: ‘a’, ‘b’, ‘k’ are rigid type variables bound by the type signature for: - ex3 :: forall k a (b :: k). Dict ((a :: *) ~~ (b :: k)) -> () - at T15039b.hs:24:1-40 + ex3 :: forall k a (b :: k). Dict ((a :: Type) ~~ (b :: k)) -> () + at T15039b.hs:24:1-43 • In a pattern type signature: _ In the pattern: Dict :: _ In an equation for ‘ex3’: ex3 (Dict :: _) = () • Relevant bindings include - ex3 :: Dict ((a :: *) ~~ (b :: k)) -> () (bound at T15039b.hs:25:1) + ex3 :: Dict ((a :: Type) ~~ (b :: k)) -> () + (bound at T15039b.hs:25:1) T15039b.hs:33:14: warning: [-Wpartial-type-signatures (in -Wdefault)] - • Found type wildcard ‘_’ standing for ‘Dict (Coercible * a b)’ + • Found type wildcard ‘_’ standing for ‘Dict (Coercible Type a b)’ Where: ‘a’, ‘b’ are rigid type variables bound by the type signature for: - ex6 :: forall a b. Dict (Coercible * a b) -> () - at T15039b.hs:32:1-47 + ex6 :: forall a b. Dict (Coercible Type a b) -> () + at T15039b.hs:32:1-53 • In a pattern type signature: _ In the pattern: Dict :: _ In an equation for ‘ex6’: ex6 (Dict :: _) = () • Relevant bindings include - ex6 :: Dict (Coercible * a b) -> () (bound at T15039b.hs:33:1) + ex6 :: Dict (Coercible Type a b) -> () (bound at T15039b.hs:33:1) T15039b.hs:35:8: warning: [-Wpartial-type-signatures (in -Wdefault)] - • Found type wildcard ‘_’ standing for ‘Coercible * a b’ + • Found type wildcard ‘_’ standing for ‘Coercible Type a b’ Where: ‘a’, ‘b’ are rigid type variables bound by - the inferred type of ex7 :: Coercible * a b => Coercion * a b + the inferred type of ex7 :: Coercible Type a b => Coercion Type a b at T15039b.hs:36:1-14 - • In the type signature: ex7 :: _ => Coercion (a :: *) (b :: *) + • In the type signature: + ex7 :: _ => Coercion (a :: Type) (b :: Type) diff --git a/testsuite/tests/partial-sigs/should_compile/T15039c.hs b/testsuite/tests/partial-sigs/should_compile/T15039c.hs index aa54c4e919..062404766f 100644 --- a/testsuite/tests/partial-sigs/should_compile/T15039c.hs +++ b/testsuite/tests/partial-sigs/should_compile/T15039c.hs @@ -2,7 +2,7 @@ {-# LANGUAGE GADTs #-} {-# LANGUAGE PartialTypeSignatures #-} {-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} {-# LANGUAGE TypeOperators #-} {-# OPTIONS_GHC -fdefer-type-errors #-} module T15039c where @@ -15,13 +15,13 @@ import Data.Type.Equality data Dict :: Constraint -> Type where Dict :: c => Dict c -ex1 :: Dict ((a :: *) ~ (b :: *)) -> () +ex1 :: Dict ((a :: Type) ~ (b :: Type)) -> () ex1 (Dict :: _) = () -ex2 :: Dict ((a :: *) ~~ (b :: *)) -> () +ex2 :: Dict ((a :: Type) ~~ (b :: Type)) -> () ex2 (Dict :: _) = () -ex3 :: Dict ((a :: *) ~~ (b :: k)) -> () +ex3 :: Dict ((a :: Type) ~~ (b :: k)) -> () ex3 (Dict :: _) = () -- Don't know how to make GHC print an unlifted, nominal equality in an error @@ -29,10 +29,10 @@ ex3 (Dict :: _) = () -- -- ex4, ex5 :: ??? -ex6 :: Dict (Coercible (a :: *) (b :: *)) -> () +ex6 :: Dict (Coercible (a :: Type) (b :: Type)) -> () ex6 (Dict :: _) = () -ex7 :: _ => Coercion (a :: *) (b :: *) +ex7 :: _ => Coercion (a :: Type) (b :: Type) ex7 = Coercion -- Don't know how to make GHC print an unlifted, heterogeneous, diff --git a/testsuite/tests/partial-sigs/should_compile/T15039c.stderr b/testsuite/tests/partial-sigs/should_compile/T15039c.stderr index bf3aff1081..29989c2cdc 100644 --- a/testsuite/tests/partial-sigs/should_compile/T15039c.stderr +++ b/testsuite/tests/partial-sigs/should_compile/T15039c.stderr @@ -4,7 +4,7 @@ T15039c.hs:19:14: warning: [-Wpartial-type-signatures (in -Wdefault)] Where: ‘a’, ‘b’ are rigid type variables bound by the type signature for: ex1 :: forall a b. Dict (a ~ b) -> () - at T15039c.hs:18:1-39 + at T15039c.hs:18:1-45 • In a pattern type signature: _ In the pattern: Dict :: _ In an equation for ‘ex1’: ex1 (Dict :: _) = () @@ -16,7 +16,7 @@ T15039c.hs:22:14: warning: [-Wpartial-type-signatures (in -Wdefault)] Where: ‘a’, ‘b’ are rigid type variables bound by the type signature for: ex2 :: forall a b. Dict (a ~~ b) -> () - at T15039c.hs:21:1-40 + at T15039c.hs:21:1-46 • In a pattern type signature: _ In the pattern: Dict :: _ In an equation for ‘ex2’: ex2 (Dict :: _) = () @@ -28,7 +28,7 @@ T15039c.hs:25:14: warning: [-Wpartial-type-signatures (in -Wdefault)] Where: ‘a’, ‘b’, ‘k’ are rigid type variables bound by the type signature for: ex3 :: forall k a (b :: k). Dict (a ~~ b) -> () - at T15039c.hs:24:1-40 + at T15039c.hs:24:1-43 • In a pattern type signature: _ In the pattern: Dict :: _ In an equation for ‘ex3’: ex3 (Dict :: _) = () @@ -40,7 +40,7 @@ T15039c.hs:33:14: warning: [-Wpartial-type-signatures (in -Wdefault)] Where: ‘a’, ‘b’ are rigid type variables bound by the type signature for: ex6 :: forall a b. Dict (Coercible a b) -> () - at T15039c.hs:32:1-47 + at T15039c.hs:32:1-53 • In a pattern type signature: _ In the pattern: Dict :: _ In an equation for ‘ex6’: ex6 (Dict :: _) = () @@ -52,4 +52,5 @@ T15039c.hs:35:8: warning: [-Wpartial-type-signatures (in -Wdefault)] Where: ‘a’, ‘b’ are rigid type variables bound by the inferred type of ex7 :: (a ~R# b) => Coercion a b at T15039c.hs:36:1-14 - • In the type signature: ex7 :: _ => Coercion (a :: *) (b :: *) + • In the type signature: + ex7 :: _ => Coercion (a :: Type) (b :: Type) diff --git a/testsuite/tests/partial-sigs/should_compile/T15039d.hs b/testsuite/tests/partial-sigs/should_compile/T15039d.hs index 3b5a5a27c3..7a87244f99 100644 --- a/testsuite/tests/partial-sigs/should_compile/T15039d.hs +++ b/testsuite/tests/partial-sigs/should_compile/T15039d.hs @@ -2,7 +2,7 @@ {-# LANGUAGE GADTs #-} {-# LANGUAGE PartialTypeSignatures #-} {-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} {-# LANGUAGE TypeOperators #-} {-# OPTIONS_GHC -fdefer-type-errors #-} module T15039d where @@ -15,13 +15,13 @@ import Data.Type.Equality data Dict :: Constraint -> Type where Dict :: c => Dict c -ex1 :: Dict ((a :: *) ~ (b :: *)) -> () +ex1 :: Dict ((a :: Type) ~ (b :: Type)) -> () ex1 (Dict :: _) = () -ex2 :: Dict ((a :: *) ~~ (b :: *)) -> () +ex2 :: Dict ((a :: Type) ~~ (b :: Type)) -> () ex2 (Dict :: _) = () -ex3 :: Dict ((a :: *) ~~ (b :: k)) -> () +ex3 :: Dict ((a :: Type) ~~ (b :: k)) -> () ex3 (Dict :: _) = () -- Don't know how to make GHC print an unlifted, nominal equality in an error @@ -29,10 +29,10 @@ ex3 (Dict :: _) = () -- -- ex4, ex5 :: ??? -ex6 :: Dict (Coercible (a :: *) (b :: *)) -> () +ex6 :: Dict (Coercible (a :: Type) (b :: Type)) -> () ex6 (Dict :: _) = () -ex7 :: _ => Coercion (a :: *) (b :: *) +ex7 :: _ => Coercion (a :: Type) (b :: Type) ex7 = Coercion -- Don't know how to make GHC print an unlifted, heterogeneous, diff --git a/testsuite/tests/partial-sigs/should_compile/T15039d.stderr b/testsuite/tests/partial-sigs/should_compile/T15039d.stderr index 8595955f87..6c6e1a0c24 100644 --- a/testsuite/tests/partial-sigs/should_compile/T15039d.stderr +++ b/testsuite/tests/partial-sigs/should_compile/T15039d.stderr @@ -1,58 +1,64 @@ T15039d.hs:19:14: warning: [-Wpartial-type-signatures (in -Wdefault)] - • Found type wildcard ‘_’ standing for ‘Dict ((a :: *) ~ (b :: *))’ + • Found type wildcard ‘_’ + standing for ‘Dict ((a :: Type) ~ (b :: Type))’ Where: ‘a’, ‘b’ are rigid type variables bound by the type signature for: - ex1 :: forall a b. Dict ((a :: *) ~ (b :: *)) -> () - at T15039d.hs:18:1-39 + ex1 :: forall a b. Dict ((a :: Type) ~ (b :: Type)) -> () + at T15039d.hs:18:1-45 • In a pattern type signature: _ In the pattern: Dict :: _ In an equation for ‘ex1’: ex1 (Dict :: _) = () • Relevant bindings include - ex1 :: Dict ((a :: *) ~ (b :: *)) -> () (bound at T15039d.hs:19:1) + ex1 :: Dict ((a :: Type) ~ (b :: Type)) -> () + (bound at T15039d.hs:19:1) T15039d.hs:22:14: warning: [-Wpartial-type-signatures (in -Wdefault)] • Found type wildcard ‘_’ - standing for ‘Dict ((a :: *) ~~ (b :: *))’ + standing for ‘Dict ((a :: Type) ~~ (b :: Type))’ Where: ‘a’, ‘b’ are rigid type variables bound by the type signature for: - ex2 :: forall a b. Dict ((a :: *) ~~ (b :: *)) -> () - at T15039d.hs:21:1-40 + ex2 :: forall a b. Dict ((a :: Type) ~~ (b :: Type)) -> () + at T15039d.hs:21:1-46 • In a pattern type signature: _ In the pattern: Dict :: _ In an equation for ‘ex2’: ex2 (Dict :: _) = () • Relevant bindings include - ex2 :: Dict ((a :: *) ~~ (b :: *)) -> () (bound at T15039d.hs:22:1) + ex2 :: Dict ((a :: Type) ~~ (b :: Type)) -> () + (bound at T15039d.hs:22:1) T15039d.hs:25:14: warning: [-Wpartial-type-signatures (in -Wdefault)] • Found type wildcard ‘_’ - standing for ‘Dict ((a :: *) ~~ (b :: k))’ + standing for ‘Dict ((a :: Type) ~~ (b :: k))’ Where: ‘a’, ‘b’, ‘k’ are rigid type variables bound by the type signature for: - ex3 :: forall k a (b :: k). Dict ((a :: *) ~~ (b :: k)) -> () - at T15039d.hs:24:1-40 + ex3 :: forall k a (b :: k). Dict ((a :: Type) ~~ (b :: k)) -> () + at T15039d.hs:24:1-43 • In a pattern type signature: _ In the pattern: Dict :: _ In an equation for ‘ex3’: ex3 (Dict :: _) = () • Relevant bindings include - ex3 :: Dict ((a :: *) ~~ (b :: k)) -> () (bound at T15039d.hs:25:1) + ex3 :: Dict ((a :: Type) ~~ (b :: k)) -> () + (bound at T15039d.hs:25:1) T15039d.hs:33:14: warning: [-Wpartial-type-signatures (in -Wdefault)] - • Found type wildcard ‘_’ standing for ‘Dict (Coercible * a b)’ + • Found type wildcard ‘_’ standing for ‘Dict (Coercible Type a b)’ Where: ‘a’, ‘b’ are rigid type variables bound by the type signature for: - ex6 :: forall a b. Dict (Coercible * a b) -> () - at T15039d.hs:32:1-47 + ex6 :: forall a b. Dict (Coercible Type a b) -> () + at T15039d.hs:32:1-53 • In a pattern type signature: _ In the pattern: Dict :: _ In an equation for ‘ex6’: ex6 (Dict :: _) = () • Relevant bindings include - ex6 :: Dict (Coercible * a b) -> () (bound at T15039d.hs:33:1) + ex6 :: Dict (Coercible Type a b) -> () (bound at T15039d.hs:33:1) T15039d.hs:35:8: warning: [-Wpartial-type-signatures (in -Wdefault)] - • Found type wildcard ‘_’ standing for ‘(a :: *) ~R# (b :: *)’ + • Found type wildcard ‘_’ + standing for ‘(a :: Type) ~R# (b :: Type)’ Where: ‘a’, ‘b’ are rigid type variables bound by the inferred type of - ex7 :: ((a :: *) ~R# (b :: *)) => Coercion * a b + ex7 :: ((a :: Type) ~R# (b :: Type)) => Coercion Type a b at T15039d.hs:36:1-14 - • In the type signature: ex7 :: _ => Coercion (a :: *) (b :: *) + • In the type signature: + ex7 :: _ => Coercion (a :: Type) (b :: Type) diff --git a/testsuite/tests/partial-sigs/should_fail/T14040a.hs b/testsuite/tests/partial-sigs/should_fail/T14040a.hs index 382e21823c..2985339f49 100644 --- a/testsuite/tests/partial-sigs/should_fail/T14040a.hs +++ b/testsuite/tests/partial-sigs/should_fail/T14040a.hs @@ -3,7 +3,7 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds #-} module T14040a where import Data.Kind diff --git a/testsuite/tests/partial-sigs/should_fail/T14584.hs b/testsuite/tests/partial-sigs/should_fail/T14584.hs index 508725eec7..1615b26205 100644 --- a/testsuite/tests/partial-sigs/should_fail/T14584.hs +++ b/testsuite/tests/partial-sigs/should_fail/T14584.hs @@ -17,10 +17,10 @@ {-# Language FunctionalDependencies #-} {-# Language UndecidableSuperClasses #-} {-# Language UndecidableInstances #-} -{-# Language TypeInType #-} {-# Language AllowAmbiguousTypes #-} {-# Language InstanceSigs, TypeApplications #-} + module T14584 where import Data.Monoid diff --git a/testsuite/tests/partial-sigs/should_fail/T14584.stderr b/testsuite/tests/partial-sigs/should_fail/T14584.stderr index b7531aa2ce..c53c822ba3 100644 --- a/testsuite/tests/partial-sigs/should_fail/T14584.stderr +++ b/testsuite/tests/partial-sigs/should_fail/T14584.stderr @@ -11,7 +11,7 @@ T14584.hs:56:41: warning: [-Wdeferred-type-errors (in -Wdefault)] act @_ @_ @act (fromSing @m (sing @m @a :: Sing _)) T14584.hs:56:50: warning: [-Wdeferred-type-errors (in -Wdefault)] - • Expected kind ‘m1’, but ‘a’ has kind ‘*’ + • Expected kind ‘m1’, but ‘a’ has kind ‘Type’ • In the type ‘a’ In the second argument of ‘fromSing’, namely ‘(sing @m @a :: Sing _)’ diff --git a/testsuite/tests/patsyn/should_compile/T12698.hs b/testsuite/tests/patsyn/should_compile/T12698.hs index 27d54d8eba..68cd817677 100644 --- a/testsuite/tests/patsyn/should_compile/T12698.hs +++ b/testsuite/tests/patsyn/should_compile/T12698.hs @@ -1,5 +1,5 @@ {-# Language ViewPatterns, TypeOperators, KindSignatures, PolyKinds, - TypeInType, StandaloneDeriving, GADTs, RebindableSyntax, + StandaloneDeriving, GADTs, RebindableSyntax, RankNTypes, LambdaCase, PatternSynonyms, TypeApplications #-} module T12698 where diff --git a/testsuite/tests/patsyn/should_compile/T12968.hs b/testsuite/tests/patsyn/should_compile/T12968.hs index 9d38500d67..99626df1a7 100644 --- a/testsuite/tests/patsyn/should_compile/T12968.hs +++ b/testsuite/tests/patsyn/should_compile/T12968.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType, GADTs, ScopedTypeVariables, PatternSynonyms, +{-# LANGUAGE PolyKinds , GADTs, ScopedTypeVariables, PatternSynonyms, ViewPatterns #-} module T12968 where diff --git a/testsuite/tests/patsyn/should_compile/T13768.hs b/testsuite/tests/patsyn/should_compile/T13768.hs index c4510bd20a..3dc3b84e7e 100644 --- a/testsuite/tests/patsyn/should_compile/T13768.hs +++ b/testsuite/tests/patsyn/should_compile/T13768.hs @@ -6,9 +6,11 @@ {-# LANGUAGE ViewPatterns #-} module T13768 where -data NS (f :: k -> *) (xs :: [k]) = NS Int +import Data.Kind (Type) -data IsNS (f :: k -> *) (xs :: [k]) where +data NS (f :: k -> Type) (xs :: [k]) = NS Int + +data IsNS (f :: k -> Type) (xs :: [k]) where IsZ :: f x -> IsNS f (x ': xs) IsS :: NS f xs -> IsNS f (x ': xs) @@ -23,7 +25,7 @@ pattern S p <- (isNS -> IsS p) {-# COMPLETE Z, S #-} -data SList :: [k] -> * where +data SList :: [k] -> Type where SNil :: SList '[] SCons :: SList (x ': xs) diff --git a/testsuite/tests/patsyn/should_compile/T14058.hs b/testsuite/tests/patsyn/should_compile/T14058.hs index 7c263b8f44..b2f7eea595 100644 --- a/testsuite/tests/patsyn/should_compile/T14058.hs +++ b/testsuite/tests/patsyn/should_compile/T14058.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds #-} module T14058 where import T14058a (Sing(..)) diff --git a/testsuite/tests/patsyn/should_compile/T14058a.hs b/testsuite/tests/patsyn/should_compile/T14058a.hs index a7e5d97b79..5e27846d2c 100644 --- a/testsuite/tests/patsyn/should_compile/T14058a.hs +++ b/testsuite/tests/patsyn/should_compile/T14058a.hs @@ -2,7 +2,8 @@ {-# LANGUAGE PatternSynonyms #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE PolyKinds #-} {-# LANGUAGE TypeOperators #-} module T14058a (Sing(.., SCons)) where diff --git a/testsuite/tests/patsyn/should_fail/T14507.hs b/testsuite/tests/patsyn/should_fail/T14507.hs index 84166d0286..b36425ced6 100644 --- a/testsuite/tests/patsyn/should_fail/T14507.hs +++ b/testsuite/tests/patsyn/should_fail/T14507.hs @@ -1,4 +1,6 @@ -{-# Language PatternSynonyms, ViewPatterns, GADTs, ConstraintKinds, RankNTypes, KindSignatures, PolyKinds, ScopedTypeVariables, DataKinds, TypeInType, TypeOperators, TypeApplications, TypeFamilies, TypeFamilyDependencies #-} +{-# Language PatternSynonyms, ViewPatterns, GADTs, ConstraintKinds, RankNTypes, + PolyKinds, ScopedTypeVariables, DataKinds, TypeOperators, + TypeApplications, TypeFamilies, TypeFamilyDependencies #-} module T14507 where diff --git a/testsuite/tests/patsyn/should_fail/T14507.stderr b/testsuite/tests/patsyn/should_fail/T14507.stderr index cec70dfcdb..1279ec1e4e 100644 --- a/testsuite/tests/patsyn/should_fail/T14507.stderr +++ b/testsuite/tests/patsyn/should_fail/T14507.stderr @@ -1,5 +1,5 @@ -T14507.hs:18:9: error: +T14507.hs:20:9: error: • Iceland Jack! Iceland Jack! Stop torturing me! Pattern-bound variable x :: TypeRep a has a type that mentions pattern-bound coercion: co diff --git a/testsuite/tests/patsyn/should_fail/T14552.hs b/testsuite/tests/patsyn/should_fail/T14552.hs index 77f08575b1..a4a7493530 100644 --- a/testsuite/tests/patsyn/should_fail/T14552.hs +++ b/testsuite/tests/patsyn/should_fail/T14552.hs @@ -1,5 +1,5 @@ {-# Language RankNTypes, ViewPatterns, PatternSynonyms, TypeOperators, ScopedTypeVariables, - KindSignatures, PolyKinds, DataKinds, TypeFamilies, TypeInType, GADTs #-} + KindSignatures, PolyKinds, DataKinds, TypeFamilies, GADTs #-} module T14552 where diff --git a/testsuite/tests/perf/compiler/T12227.hs b/testsuite/tests/perf/compiler/T12227.hs index a97ff69f45..9be515f083 100644 --- a/testsuite/tests/perf/compiler/T12227.hs +++ b/testsuite/tests/perf/compiler/T12227.hs @@ -13,25 +13,26 @@ module Crash where import Data.Proxy (Proxy(..)) import Data.Type.Equality (type (==)) +import Data.Kind import GHC.Exts import GHC.Generics -data Dict :: Constraint -> * where +data Dict :: Constraint -> Type where Dict :: a => Dict a infixr 0 --> -type family (args :: [*]) --> (ret :: *) :: * +type family (args :: [Type]) --> (ret :: Type) :: Type where '[] --> ret = ret (arg ': args) --> ret = arg -> (args --> ret) -type family AllArguments (func :: *) :: [*] +type family AllArguments (func :: Type) :: [Type] where AllArguments (arg -> func) = arg ': AllArguments func AllArguments ret = '[] -type family FinalReturn (func :: *) :: * +type family FinalReturn (func :: Type) :: Type where FinalReturn (arg -> func) = FinalReturn func FinalReturn ret = ret @@ -39,11 +40,11 @@ type family FinalReturn (func :: *) :: * type IsFullFunction f = (AllArguments f --> FinalReturn f) ~ f -type family SConstructor (struct :: *) :: * +type family SConstructor (struct :: Type) :: Type where SConstructor struct = GPrependFields (Rep struct ()) '[] --> struct -type family GPrependFields (gstruct :: *) (tail :: [*]) :: [*] +type family GPrependFields (gstruct :: Type) (tail :: [Type]) :: [Type] where GPrependFields (M1 i t f p) tail = GPrependFields (f p) tail GPrependFields (K1 i c p) tail = c ': tail @@ -60,7 +61,7 @@ instance AppendFields fields1 fields2 fields r => AppendFields (f ': fields1) fields2 (f ': fields) r class Generic struct - => GoodConstructor (struct :: *) + => GoodConstructor (struct :: Type) where goodConstructor :: Proxy struct -> Dict ( IsFullFunction (SConstructor struct) @@ -79,7 +80,7 @@ instance ( Generic struct (Proxy :: Proxy struct) {-# INLINE goodConstructor #-} -class GoodConstructorEq (isEqual :: Bool) (ctor :: *) (struct :: *) +class GoodConstructorEq (isEqual :: Bool) (ctor :: Type) (struct :: Type) where goodConstructorEq :: Proxy isEqual -> Proxy ctor diff --git a/testsuite/tests/perf/compiler/T12545a.hs b/testsuite/tests/perf/compiler/T12545a.hs index 3002085499..4eceb91d02 100644 --- a/testsuite/tests/perf/compiler/T12545a.hs +++ b/testsuite/tests/perf/compiler/T12545a.hs @@ -19,6 +19,7 @@ module T12545a , ElemsOf ) where +import Data.Kind (Type) import Data.Proxy (Proxy(..)) data ElemPath = HeadElem @@ -55,4 +56,4 @@ type IsElem a l = ElemAt (JustElemPath (FindElem 'HeadElem a l)) a l class IsElem t (ElemsOf a) => ElemOf a t where -type family ElemsOf a :: [*] +type family ElemsOf a :: [Type] diff --git a/testsuite/tests/perf/compiler/T13035.hs b/testsuite/tests/perf/compiler/T13035.hs index 4c001cf3e1..b8d294def5 100644 --- a/testsuite/tests/perf/compiler/T13035.hs +++ b/testsuite/tests/perf/compiler/T13035.hs @@ -1,7 +1,10 @@ -{-# LANGUAGE PolyKinds, DataKinds, TypeOperators, TypeFamilies, GADTs, PartialTypeSignatures #-} +{-# LANGUAGE PolyKinds, DataKinds, TypeOperators, TypeFamilies, + GADTs, PartialTypeSignatures #-} module T13035 where +import Data.Kind + newtype MyAttr a b = MyAttr { _unMyAttr :: MyFun (a b) } type MyRec a b = Rec (MyAttr a) b @@ -26,9 +29,9 @@ type (a :: j1 -> j2) $ (b :: j1) = a b infixr 0 $ infixr 9 =: -data FConst (a :: *) (b :: Fields) -data FApply (a :: * -> * -> *) b c (d :: Fields) -data FMap (a :: * -> *) b (d :: Fields) +data FConst (a :: Type) (b :: Fields) +data FApply (a :: Type -> Type -> Type) b c (d :: Fields) +data FMap (a :: Type -> Type) b (d :: Fields) type instance MyFun (FConst a b) = a type instance MyFun (FApply b c d a) = b (MyFun (c a)) (MyFun (d a)) @@ -63,7 +66,7 @@ data Fields = Name | UnsaturatedFat | ServingSize -data Rec :: (u -> *) -> [u] -> * where +data Rec :: (u -> Type) -> [u] -> Type where RNil :: Rec f '[] (:&) :: !(f r) -> !(Rec f rs) -> Rec f (r ': rs) diff --git a/testsuite/tests/perf/compiler/T13035.stderr b/testsuite/tests/perf/compiler/T13035.stderr index 4fbc7c7e37..3dca3d71f2 100644 --- a/testsuite/tests/perf/compiler/T13035.stderr +++ b/testsuite/tests/perf/compiler/T13035.stderr @@ -1,4 +1,4 @@ -T13035.hs:141:28: warning: [-Wpartial-type-signatures (in -Wdefault)] +T13035.hs:144:28: warning: [-Wpartial-type-signatures (in -Wdefault)] • Found type wildcard ‘_’ standing for ‘'[ 'Author] :: [Fields]’ • In the type signature: g :: MyRec RecipeFormatter _ diff --git a/testsuite/tests/perf/compiler/T9872d.hs b/testsuite/tests/perf/compiler/T9872d.hs index 4930ffecfe..5c859eefdc 100644 --- a/testsuite/tests/perf/compiler/T9872d.hs +++ b/testsuite/tests/perf/compiler/T9872d.hs @@ -16,30 +16,32 @@ module T9872d where -- families. Code in this file was extracted from encoding generated -- automatically with Template Haskell by singletons library. +import Data.Kind import GHC.TypeLits -- encoding of type-level partially applied functions -data TyFun :: * -> * -> * -type family Apply (f :: TyFun k1 k2 -> *) (x :: k1) :: k2 +data TyFun :: Type -> Type -> Type +type family Apply (f :: TyFun k1 k2 -> Type) (x :: k1) :: k2 type a @@ b = Apply a b -- some boilerplate type family Error (a :: k) :: k1 type ErrorSym1 a = Error a -data ErrorSym0 :: TyFun a b -> * +data ErrorSym0 :: TyFun a b -> Type type instance Apply ErrorSym0 e = Error e data Proxy a = Proxy -data KProxy (a :: *) = KProxy +data KProxy (a :: Type) = KProxy type KindOf (a :: k) = ('KProxy :: KProxy k) -- type-level addition type (:+$$$) (t1 :: Nat) (t2 :: Nat) = t1 + t2 data (:+$$) (l :: Nat) (tf :: TyFun Nat Nat) - = forall a. (KindOf (Apply ((:+$$) l) a)) ~ (KindOf ((:+$$$) l a)) => (:+$$###) + = forall a. (KindOf (Apply ((:+$$) l) a)) ~ (KindOf ((:+$$$) l a)) => + (:+$$###) type instance Apply ((:+$$) l1) l2 = (:+$$$) l1 l2 -data (:+$) (l :: TyFun Nat (TyFun Nat Nat -> *)) +data (:+$) (l :: TyFun Nat (TyFun Nat Nat -> Type)) = forall a. (KindOf (Apply (:+$) a)) ~ (KindOf ((:+$$) a)) => (:+$###) type instance Apply (:+$) l = (:+$$) l @@ -49,10 +51,11 @@ type NilSym0 = '[] type ConsSym2 (x :: a) (xs :: [a]) = x ': xs data ConsSym1 (x :: a) (l_a3t6 :: TyFun [a] [a]) - = forall b. (KindOf (Apply (ConsSym1 x) b)) ~ (KindOf (ConsSym2 x b)) => (:$$###) + = forall b. (KindOf (Apply (ConsSym1 x) b)) ~ (KindOf (ConsSym2 x b)) => + (:$$###) type instance Apply (ConsSym1 x) xs = ConsSym2 x xs -data ConsSym0 (l :: TyFun a (TyFun [a] [a] -> *)) +data ConsSym0 (l :: TyFun a (TyFun [a] [a] -> Type)) = forall a. (KindOf (Apply ConsSym0 a)) ~ (KindOf (ConsSym1 a)) => (:$###) type instance Apply ConsSym0 l = ConsSym1 l @@ -63,22 +66,41 @@ data Let_1627403919Scrutinee_1627403894Sym3 l_a3Dx l_a3Dy l_a3Dz l_a3Dw - = forall arg_a3DA. (KindOf (Apply (Let_1627403919Scrutinee_1627403894Sym3 l_a3Dx l_a3Dy l_a3Dz) arg_a3DA)) ~ (KindOf (Let_1627403919Scrutinee_1627403894Sym4 l_a3Dx l_a3Dy l_a3Dz arg_a3DA)) => + = forall arg_a3DA. (KindOf (Apply (Let_1627403919Scrutinee_1627403894Sym3 + l_a3Dx l_a3Dy l_a3Dz) arg_a3DA)) ~ + (KindOf (Let_1627403919Scrutinee_1627403894Sym4 + l_a3Dx l_a3Dy l_a3Dz arg_a3DA)) => Let_1627403919Scrutinee_1627403894Sym3KindInference -type instance Apply (Let_1627403919Scrutinee_1627403894Sym3 l_a3Dx l_a3Dy l_a3Dz) l_a3Dw = Let_1627403919Scrutinee_1627403894Sym4 l_a3Dx l_a3Dy l_a3Dz l_a3Dw +type instance Apply (Let_1627403919Scrutinee_1627403894Sym3 + l_a3Dx l_a3Dy l_a3Dz) l_a3Dw = + Let_1627403919Scrutinee_1627403894Sym4 l_a3Dx l_a3Dy l_a3Dz l_a3Dw data Let_1627403919Scrutinee_1627403894Sym2 l_a3Dt l_a3Du l_a3Ds - = forall arg_a3Dv. (KindOf (Apply (Let_1627403919Scrutinee_1627403894Sym2 l_a3Dt l_a3Du) arg_a3Dv)) ~ (KindOf (Let_1627403919Scrutinee_1627403894Sym3 l_a3Dt l_a3Du arg_a3Dv)) => + = forall arg_a3Dv. (KindOf (Apply (Let_1627403919Scrutinee_1627403894Sym2 + l_a3Dt l_a3Du) arg_a3Dv)) ~ + (KindOf (Let_1627403919Scrutinee_1627403894Sym3 + l_a3Dt l_a3Du arg_a3Dv)) => Let_1627403919Scrutinee_1627403894Sym2KindInference -type instance Apply (Let_1627403919Scrutinee_1627403894Sym2 l_a3Dt l_a3Du) l_a3Ds = Let_1627403919Scrutinee_1627403894Sym3 l_a3Dt l_a3Du l_a3Ds +type instance Apply + (Let_1627403919Scrutinee_1627403894Sym2 l_a3Dt l_a3Du) l_a3Ds = + Let_1627403919Scrutinee_1627403894Sym3 l_a3Dt l_a3Du l_a3Ds data Let_1627403919Scrutinee_1627403894Sym1 l_a3Dq l_a3Dp - = forall arg_a3Dr. (KindOf (Apply (Let_1627403919Scrutinee_1627403894Sym1 l_a3Dq) arg_a3Dr)) ~ (KindOf (Let_1627403919Scrutinee_1627403894Sym2 l_a3Dq arg_a3Dr)) => + = forall arg_a3Dr. (KindOf (Apply (Let_1627403919Scrutinee_1627403894Sym1 + l_a3Dq) arg_a3Dr)) ~ + (KindOf (Let_1627403919Scrutinee_1627403894Sym2 + l_a3Dq arg_a3Dr)) => Let_1627403919Scrutinee_1627403894Sym1KindInference -type instance Apply (Let_1627403919Scrutinee_1627403894Sym1 l_a3Dq) l_a3Dp = Let_1627403919Scrutinee_1627403894Sym2 l_a3Dq l_a3Dp +type instance Apply (Let_1627403919Scrutinee_1627403894Sym1 l_a3Dq) + l_a3Dp + = Let_1627403919Scrutinee_1627403894Sym2 l_a3Dq l_a3Dp data Let_1627403919Scrutinee_1627403894Sym0 l_a3Dn - = forall arg_a3Do. (KindOf (Apply Let_1627403919Scrutinee_1627403894Sym0 arg_a3Do)) ~ (KindOf (Let_1627403919Scrutinee_1627403894Sym1 arg_a3Do)) => + = forall arg_a3Do. (KindOf (Apply Let_1627403919Scrutinee_1627403894Sym0 + arg_a3Do)) ~ + (KindOf (Let_1627403919Scrutinee_1627403894Sym1 + arg_a3Do)) => Let_1627403919Scrutinee_1627403894Sym0KindInference -type instance Apply Let_1627403919Scrutinee_1627403894Sym0 l_a3Dn = Let_1627403919Scrutinee_1627403894Sym1 l_a3Dn +type instance Apply Let_1627403919Scrutinee_1627403894Sym0 l_a3Dn + = Let_1627403919Scrutinee_1627403894Sym1 l_a3Dn type Let_1627403919Scrutinee_1627403894 f_a3Dd q0_a3De x_a3Df @@ -90,60 +112,154 @@ type family Case f q0 x xs t :: [k] where Case f q0 x xs (q ': qs) = ConsSym0 @@ (f @@ x @@ q) @@ (ConsSym0 @@ q @@ qs) -- type-level scanr -type ScanrSym3 (t1 :: TyFun a (TyFun b b -> *) -> *) (t2 :: b) (t3 :: [a]) = +type ScanrSym3 (t1 :: TyFun a (TyFun b b -> Type) -> Type) + (t2 :: b) + (t3 :: [a]) = Scanr t1 t2 t3 -data ScanrSym2 (l1 :: TyFun a (TyFun b b -> *) -> *) (l2 :: b) (l3 :: TyFun [a] [b]) - = forall a. (KindOf (Apply (ScanrSym2 l1 l2) a)) ~ (KindOf (ScanrSym3 l1 l2 a)) => +data ScanrSym2 (l1 :: TyFun a (TyFun b b -> Type) -> Type) + (l2 :: b) + (l3 :: TyFun [a] [b]) + = forall a. (KindOf (Apply (ScanrSym2 l1 l2) a)) ~ + (KindOf (ScanrSym3 l1 l2 a)) => ScanrSym2KindInference type instance Apply (ScanrSym2 l1 l2) l3 = ScanrSym3 l1 l2 l3 -data ScanrSym1 (l_a3D0 :: TyFun a_a3CJ (TyFun b_a3CK b_a3CK -> *) -> *) +data ScanrSym1 (l_a3D0 :: TyFun a_a3CJ (TyFun b_a3CK b_a3CK -> Type) -> Type) (l_a3CZ :: TyFun b_a3CK (TyFun ([a_a3CJ]) ([b_a3CK]) - -> *)) - = forall arg_a3D1. (KindOf (Apply (ScanrSym1 l_a3D0) arg_a3D1)) ~ (KindOf (ScanrSym2 l_a3D0 arg_a3D1)) => + -> Type)) + = forall arg_a3D1. (KindOf (Apply (ScanrSym1 l_a3D0) arg_a3D1)) ~ + (KindOf (ScanrSym2 l_a3D0 arg_a3D1)) => ScanrSym1KindInference type instance Apply (ScanrSym1 l_a3D0) l_a3CZ = ScanrSym2 l_a3D0 l_a3CZ -data ScanrSym0 (l :: TyFun (TyFun a (TyFun b b -> *) -> *) - (TyFun b (TyFun [a] [b] -> *) -> *)) +data ScanrSym0 (l :: TyFun (TyFun a (TyFun b b -> Type) -> Type) + (TyFun b (TyFun [a] [b] -> Type) -> Type)) = forall a. (KindOf (Apply ScanrSym0 a)) ~ (KindOf (ScanrSym1 a)) => ScanrSym0KindInference type instance Apply ScanrSym0 l1 = ScanrSym1 l1 -type family Scanr (a_a3D6 :: TyFun a_a3CJ (TyFun b_a3CK b_a3CK -> *) -> *) +type family Scanr (a_a3D6 :: TyFun a_a3CJ (TyFun b_a3CK b_a3CK -> Type) -> Type) (a_a3D7 :: b_a3CK) (a_a3D8 :: [a_a3CJ]) :: [b_a3CK] where Scanr _z_1627403911_a3Db q0_a3Dc '[] = Apply (Apply ConsSym0 q0_a3Dc) NilSym0 - Scanr f_a3Dd q0_a3De (x_a3Df ': xs_a3Dg) = Case f_a3Dd q0_a3De x_a3Df xs_a3Dg (Let_1627403919Scrutinee_1627403894Sym4 f_a3Dd q0_a3De x_a3Df xs_a3Dg) + Scanr f_a3Dd q0_a3De (x_a3Df ': xs_a3Dg) = + Case f_a3Dd q0_a3De x_a3Df xs_a3Dg (Let_1627403919Scrutinee_1627403894Sym4 + f_a3Dd q0_a3De x_a3Df xs_a3Dg) {- -foo32 :: Proxy ('[528,527,525,522,518,513,507,500,492,483,473,462,450,437,423,408,392,375,357,338,318,297,275,252,228,203,177,150,122,93,63,32,0]) +foo32 :: Proxy ('[528,527,525,522,518,513,507,500,492,483,473,462,450,437,423, + 408,392,375,357,338,318,297,275,252,228,203,177,150,122,93, + 63,32,0]) foo32 = Proxy -bar32 :: Proxy (ScanrSym0 @@ (:+$) @@ 0 @@ '[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32]) +bar32 :: Proxy (ScanrSym0 @@ (:+$) @@ 0 @@ '[1,2,3,4,5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32]) bar32 = foo32 -} {- -foo64 :: Proxy ('[2080,2079,2077,2074,2070,2065,2059,2052,2044,2035,2025,2014,2002,1989,1975,1960,1944,1927,1909,1890,1870,1849,1827,1804,1780,1755,1729,1702,1674,1645,1615,1584,1552,1519,1485,1450,1414,1377,1339,1300,1260,1219,1177,1134,1090,1045,999,952,904,855,805,754,702,649,595,540,484,427,369,310,250,189,127,64,0]) +foo64 :: Proxy ('[2080,2079,2077,2074,2070,2065,2059,2052,2044,2035,2025,2014, + 2002,1989,1975,1960,1944,1927,1909,1890,1870,1849,1827,1804, + 1780,1755,1729,1702,1674,1645,1615,1584,1552,1519,1485,1450, + 1414,1377,1339,1300,1260,1219,1177,1134,1090,1045,999,952,904, + 855,805,754,702,649,595,540,484,427,369,310,250,189,127,64,0]) foo64 = Proxy -bar64 :: Proxy (ScanrSym0 @@ (:+$) @@ 0 @@ '[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64]) +bar64 :: Proxy (ScanrSym0 @@ (:+$) @@ 0 @@ '[1,2,3,4,5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,41,42,43,44,45,46,47, + 48,49,50,51,52,53,54,55,56,57,58, + 59,60,61,62,63,64]) bar64 = foo64 -foo128 :: Proxy ('[8256,8255,8253,8250,8246,8241,8235,8228,8220,8211,8201,8190,8178,8165,8151,8136,8120,8103,8085,8066,8046,8025,8003,7980,7956,7931,7905,7878,7850,7821,7791,7760,7728,7695,7661,7626,7590,7553,7515,7476,7436,7395,7353,7310,7266,7221,7175,7128,7080,7031,6981,6930,6878,6825,6771,6716,6660,6603,6545,6486,6426,6365,6303,6240,6176,6111,6045,5978,5910,5841,5771,5700,5628,5555,5481,5406,5330,5253,5175,5096,5016,4935,4853,4770,4686,4601,4515,4428,4340,4251,4161,4070,3978,3885,3791,3696,3600,3503,3405,3306,3206,3105,3003,2900,2796,2691,2585,2478,2370,2261,2151,2040,1928,1815,1701,1586,1470,1353,1235,1116,996,875,753,630,506,381,255,128,0]) +foo128 :: Proxy ('[8256,8255,8253,8250,8246,8241,8235,8228,8220,8211,8201,8190, + 8178,8165,8151,8136,8120,8103,8085,8066,8046,8025,8003,7980, + 7956,7931,7905,7878,7850,7821,7791,7760,7728,7695,7661,7626, + 7590,7553,7515,7476,7436,7395,7353,7310,7266,7221,7175,7128, + 7080,7031,6981,6930,6878,6825,6771,6716,6660,6603,6545,6486, + 6426,6365,6303,6240,6176,6111,6045,5978,5910,5841,5771,5700, + 5628,5555,5481,5406,5330,5253,5175,5096,5016,4935,4853,4770, + 4686,4601,4515,4428,4340,4251,4161,4070,3978,3885,3791,3696, + 3600,3503,3405,3306,3206,3105,3003,2900,2796,2691,2585,2478, + 2370,2261,2151,2040,1928,1815,1701,1586,1470,1353,1235,1116, + 996,875,753,630,506,381,255,128,0]) foo128 = Proxy -bar128 :: Proxy (ScanrSym0 @@ (:+$) @@ 0 @@ '[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128]) +bar128 :: Proxy (ScanrSym0 @@ (:+$) @@ 0 @@ '[1,2,3,4,5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,41,42,43,44,45,46,47, + 48,49,50,51,52,53,54,55,56,57,58, + 59,60,61,62,63,64,65,66,67,68,69, + 70,71,72,73,74,75,76,77,78,79,80, + 81,82,83,84,85,86,87,88,89,90,91, + 92,93,94,95,96,97,98,99,100,101, + 102,103,104,105,106,107,108,109, + 110,111,112,113,114,115,116,117, + 118,119,120,121,122,123,124,125, + 126,127,128]) bar128 = foo128 -} -foo256 :: Proxy ('[32896,32895,32893,32890,32886,32881,32875,32868,32860,32851,32841,32830,32818,32805,32791,32776,32760,32743,32725,32706,32686,32665,32643,32620,32596,32571,32545,32518,32490,32461,32431,32400,32368,32335,32301,32266,32230,32193,32155,32116,32076,32035,31993,31950,31906,31861,31815,31768,31720,31671,31621,31570,31518,31465,31411,31356,31300,31243,31185,31126,31066,31005,30943,30880,30816,30751,30685,30618,30550,30481,30411,30340,30268,30195,30121,30046,29970,29893,29815,29736,29656,29575,29493,29410,29326,29241,29155,29068,28980,28891,28801,28710,28618,28525,28431,28336,28240,28143,28045,27946,27846,27745,27643,27540,27436,27331,27225,27118,27010,26901,26791,26680,26568,26455,26341,26226,26110,25993,25875,25756,25636,25515,25393,25270,25146,25021,24895,24768,24640,24511,24381,24250,24118,23985,23851,23716,23580,23443,23305,23166,23026,22885,22743,22600,22456,22311,22165,22018,21870,21721,21571,21420,21268,21115,20961,20806,20650,20493,20335,20176,20016,19855,19693,19530,19366,19201,19035,18868,18700,18531,18361,18190,18018,17845,17671,17496,17320,17143,16965,16786,16606,16425,16243,16060,15876,15691,15505,15318,15130,14941,14751,14560,14368,14175,13981,13786,13590,13393,13195,12996,12796,12595,12393,12190,11986,11781,11575,11368,11160,10951,10741,10530,10318,10105,9891,9676,9460,9243,9025,8806,8586,8365,8143,7920,7696,7471,7245,7018,6790,6561,6331,6100,5868,5635,5401,5166,4930,4693,4455,4216,3976,3735,3493,3250,3006,2761,2515,2268,2020,1771,1521,1270,1018,765,511,256,0]) +foo256 :: Proxy ('[32896,32895,32893,32890,32886,32881,32875,32868,32860,32851, + 32841,32830,32818,32805,32791,32776,32760,32743,32725,32706, + 32686,32665,32643,32620,32596,32571,32545,32518,32490,32461, + 32431,32400,32368,32335,32301,32266,32230,32193,32155,32116, + 32076,32035,31993,31950,31906,31861,31815,31768,31720,31671, + 31621,31570,31518,31465,31411,31356,31300,31243,31185,31126, + 31066,31005,30943,30880,30816,30751,30685,30618,30550,30481, + 30411,30340,30268,30195,30121,30046,29970,29893,29815,29736, + 29656,29575,29493,29410,29326,29241,29155,29068,28980,28891, + 28801,28710,28618,28525,28431,28336,28240,28143,28045,27946, + 27846,27745,27643,27540,27436,27331,27225,27118,27010,26901, + 26791,26680,26568,26455,26341,26226,26110,25993,25875,25756, + 25636,25515,25393,25270,25146,25021,24895,24768,24640,24511, + 24381,24250,24118,23985,23851,23716,23580,23443,23305,23166, + 23026,22885,22743,22600,22456,22311,22165,22018,21870,21721, + 21571,21420,21268,21115,20961,20806,20650,20493,20335,20176, + 20016,19855,19693,19530,19366,19201,19035,18868,18700,18531, + 18361,18190,18018,17845,17671,17496,17320,17143,16965,16786, + 16606,16425,16243,16060,15876,15691,15505,15318,15130,14941, + 14751,14560,14368,14175,13981,13786,13590,13393,13195,12996, + 12796,12595,12393,12190,11986,11781,11575,11368,11160,10951, + 10741,10530,10318,10105,9891,9676,9460,9243,9025,8806, + 8586,8365,8143,7920,7696,7471,7245,7018,6790,6561,6331,6100, + 5868,5635,5401,5166,4930,4693,4455,4216,3976,3735,3493,3250, + 3006,2761,2515,2268,2020,1771,1521,1270,1018,765,511,256,0]) foo256 = Proxy -bar256 :: Proxy (ScanrSym0 @@ (:+$) @@ 0 @@ '[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256]) +bar256 :: Proxy (ScanrSym0 @@ (:+$) @@ 0 @@ '[1,2,3,4,5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,41,42,43,44,45,46,47, + 48,49,50,51,52,53,54,55,56,57,58, + 59,60,61,62,63,64,65,66,67,68,69, + 70,71,72,73,74,75,76,77,78,79,80, + 81,82,83,84,85,86,87,88,89,90,91, + 92,93,94,95,96,97,98,99,100,101, + 102,103,104,105,106,107,108,109, + 110,111,112,113,114,115,116,117, + 118,119,120,121,122,123,124,125, + 126,127,128,129,130,131,132,133, + 134,135,136,137,138,139,140,141, + 142,143,144,145,146,147,148,149, + 150,151,152,153,154,155,156,157, + 158,159,160,161,162,163,164,165, + 166,167,168,169,170,171,172,173, + 174,175,176,177,178,179,180,181, + 182,183,184,185,186,187,188,189, + 190,191,192,193,194,195,196,197, + 198,199,200,201,202,203,204,205, + 206,207,208,209,210,211,212,213, + 214,215,216,217,218,219,220,221, + 222,223,224,225,226,227,228,229, + 230,231,232,233,234,235,236,237, + 238,239,240,241,242,243,244,245, + 246,247,248,249,250,251,252,253, + 254,255,256]) bar256 = foo256 - diff --git a/testsuite/tests/pmcheck/complete_sigs/T14253.hs b/testsuite/tests/pmcheck/complete_sigs/T14253.hs index 88cc4f88b3..bb56d437bf 100644 --- a/testsuite/tests/pmcheck/complete_sigs/T14253.hs +++ b/testsuite/tests/pmcheck/complete_sigs/T14253.hs @@ -2,7 +2,7 @@ {-# LANGUAGE PatternSynonyms #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE RankNTypes #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} module T14253 where diff --git a/testsuite/tests/pmcheck/should_compile/T14086.hs b/testsuite/tests/pmcheck/should_compile/T14086.hs index de91229c24..5e69ce6a33 100644 --- a/testsuite/tests/pmcheck/should_compile/T14086.hs +++ b/testsuite/tests/pmcheck/should_compile/T14086.hs @@ -1,4 +1,4 @@ -{-# language TypeInType, EmptyCase #-} +{-# language EmptyCase #-} module T14086 where import Data.Kind diff --git a/testsuite/tests/pmcheck/should_compile/T3927b.hs b/testsuite/tests/pmcheck/should_compile/T3927b.hs index 89b81534c7..d4cfa1e275 100644 --- a/testsuite/tests/pmcheck/should_compile/T3927b.hs +++ b/testsuite/tests/pmcheck/should_compile/T3927b.hs @@ -11,8 +11,8 @@ module T3927b where +import Data.Kind (Type, Constraint) import Data.Proxy -import GHC.Exts data Message @@ -30,16 +30,16 @@ type family Implements (t :: SocketType) :: [SocketOperation] where Implements Push = '[Write] Implements Pull = '[ 'Read] -data SockOp :: SocketType -> SocketOperation -> * where +data SockOp :: SocketType -> SocketOperation -> Type where SRead :: SockOp sock 'Read SWrite :: SockOp sock Write -data Socket :: SocketType -> * where +data Socket :: SocketType -> Type where Socket :: proxy sock -> (forall op . Restrict op (Implements sock) => SockOp sock op -> Operation op) -> Socket sock -type family Operation (op :: SocketOperation) :: * where +type family Operation (op :: SocketOperation) :: Type where Operation 'Read = IO Message Operation Write = Message -> IO () diff --git a/testsuite/tests/polykinds/MonoidsTF.hs b/testsuite/tests/polykinds/MonoidsTF.hs index 365c3766bc..8e3b378046 100644 --- a/testsuite/tests/polykinds/MonoidsTF.hs +++ b/testsuite/tests/polykinds/MonoidsTF.hs @@ -12,13 +12,15 @@ {-# LANGUAGE TypeFamilies #-} module Main where + +import Data.Kind import Control.Monad (Monad(..), join, ap, liftM) import Data.Monoid (Monoid(..)) import Data.Semigroup (Semigroup(..)) -- First we define the type class Monoidy: -class Monoidy (to :: k0 -> k1 -> *) (m :: k1) where +class Monoidy (to :: k0 -> k1 -> Type) (m :: k1) where type MComp to m :: k1 -> k1 -> k0 type MId to m :: k0 munit :: MId to m `to` m diff --git a/testsuite/tests/polykinds/PolyKinds10.hs b/testsuite/tests/polykinds/PolyKinds10.hs index b023fd092f..70c5d70606 100644 --- a/testsuite/tests/polykinds/PolyKinds10.hs +++ b/testsuite/tests/polykinds/PolyKinds10.hs @@ -9,6 +9,7 @@ module Main where +import Data.Kind -- Type-level peano naturals (value-level too, but we don't use those) data Nat = Ze | Su Nat @@ -18,15 +19,15 @@ type T1 = Su T0 type T2 = Su T1 -- (!) at the type level -type family El (n :: Nat) (l :: [*]) :: * +type family El (n :: Nat) (l :: [Type]) :: Type type instance El Ze (h ': t) = h type instance El (Su n) (h ': t) = El n t {- -- The following might be useful, but are not used at the moment -- ($) at the type level (well, not quite ($), in fact...) -class Apply (fs :: [*]) (es :: [*]) where - type ApplyT (fs :: [*]) (es :: [*]) :: [*] +class Apply (fs :: [Type]) (es :: [Type]) where + type ApplyT (fs :: [Type]) (es :: [Type]) :: [Type] apply :: ListV fs -> ListV es -> ListV (ApplyT fs es) instance Apply '[] '[] where @@ -39,11 +40,11 @@ instance (Apply fs es) => Apply ((e1 -> e2) ': fs) (e1 ': es) where -} -- Value mirror for the list kind -data ListV :: [*] -> * where +data ListV :: [Type] -> Type where NilV :: ListV '[] ConsV :: a -> ListV t -> ListV (a ': t) -data ListV2 :: [[*]] -> * where +data ListV2 :: [[Type]] -> Type where NilV2 :: ListV2 '[] ConsV2 :: ListV a -> ListV2 t -> ListV2 (a ': t) @@ -53,26 +54,26 @@ listv1 = ConsV 3 NilV listv2 :: ListV2 ((Int ': '[]) ': '[]) listv2 = ConsV2 listv1 NilV2 ---data ListVX :: Maybe -> * where +--data ListVX :: Maybe -> Type where -data TripleV :: (*, * -> *, *) -> * where +data TripleV :: (Type, Type -> Type, Type) -> Type where TripleV :: a -> c -> TripleV '(a, [], c) -- Value mirror for the Nat kind -data NatV :: Nat -> * where +data NatV :: Nat -> Type where ZeW :: NatV Ze SuW :: NatV n -> NatV (Su n) -- Generic universe data MultiP x = UNIT - | KK x -- wish I could just write * instead of x + | KK x -- wish I could just write Type instead of x | SUM (MultiP x) (MultiP x) | PROD (MultiP x) (MultiP x) | PAR Nat | REC -- Universe interpretation -data Interprt :: MultiP * -> [*] -> * -> * where +data Interprt :: MultiP Type -> [Type] -> Type -> Type where Unit :: Interprt UNIT lp r K :: x -> Interprt (KK x) lp r L :: Interprt a lp r -> Interprt (SUM a b) lp r @@ -83,13 +84,13 @@ data Interprt :: MultiP * -> [*] -> * -> * where -- Embedding values into the universe class Generic a where - type Rep a :: MultiP * - type Es a :: [*] + type Rep a :: MultiP Type + type Es a :: [Type] from :: a -> Interprt (Rep a) (Es a) a to :: Interprt (Rep a) (Es a) a -> a -- Parameter map over the universe -class PMap (rep :: MultiP *) where +class PMap (rep :: MultiP Type) where pmap :: (forall n. NatV n -> El n lp1 -> El n lp2) -> (r -> s) -> Interprt rep lp1 r -> Interprt rep lp2 s diff --git a/testsuite/tests/polykinds/SigTvKinds3.hs b/testsuite/tests/polykinds/SigTvKinds3.hs index b27be2e9c6..7c9dace054 100644 --- a/testsuite/tests/polykinds/SigTvKinds3.hs +++ b/testsuite/tests/polykinds/SigTvKinds3.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE GADTs, ExplicitForAll, TypeInType #-} +{-# LANGUAGE GADTs, ExplicitForAll, PolyKinds #-} module SigTvKinds3 where diff --git a/testsuite/tests/polykinds/T10134a.hs b/testsuite/tests/polykinds/T10134a.hs index 0d84d56b5e..9412705e4c 100644 --- a/testsuite/tests/polykinds/T10134a.hs +++ b/testsuite/tests/polykinds/T10134a.hs @@ -4,8 +4,9 @@ {-# LANGUAGE TypeOperators #-} module T10134a where +import Data.Kind (Type) import GHC.TypeLits -data Vec :: Nat -> * -> * where +data Vec :: Nat -> Type -> Type where Nil :: Vec 0 a (:>) :: a -> Vec n a -> Vec (n + 1) a diff --git a/testsuite/tests/polykinds/T10934.hs b/testsuite/tests/polykinds/T10934.hs index fb7a538ebd..35ea20f225 100644 --- a/testsuite/tests/polykinds/T10934.hs +++ b/testsuite/tests/polykinds/T10934.hs @@ -11,6 +11,8 @@ module KeyValue where +import Data.Kind + data AccValidation err a = AccFailure err | AccSuccess a data KeyValueError = MissingValue @@ -23,11 +25,11 @@ missing = rpure missingField missingField :: forall x. (WithKeyValueError :. f) x missingField = Compose $ AccFailure [MissingValue] -data Rec :: (u -> *) -> [u] -> * where +data Rec :: (u -> Type) -> [u] -> Type where RNil :: Rec f '[] (:&) :: !(f r) -> !(Rec f rs) -> Rec f (r ': rs) -newtype Compose (f :: l -> *) (g :: k -> l) (x :: k) +newtype Compose (f :: l -> Type) (g :: k -> l) (x :: k) = Compose { getCompose :: f (g x) } type (:.) f g = Compose f g diff --git a/testsuite/tests/polykinds/T11142.hs b/testsuite/tests/polykinds/T11142.hs index 58eb3b6c94..a96566a371 100644 --- a/testsuite/tests/polykinds/T11142.hs +++ b/testsuite/tests/polykinds/T11142.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType, RankNTypes #-} +{-# LANGUAGE PolyKinds, RankNTypes #-} module T11142 where diff --git a/testsuite/tests/polykinds/T11399.hs b/testsuite/tests/polykinds/T11399.hs index bc9e60d7f3..56f3c11ef7 100644 --- a/testsuite/tests/polykinds/T11399.hs +++ b/testsuite/tests/polykinds/T11399.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE FlexibleInstances, TypeInType #-} +{-# LANGUAGE FlexibleInstances, PolyKinds #-} module T11399 where import Data.Kind diff --git a/testsuite/tests/polykinds/T11480b.hs b/testsuite/tests/polykinds/T11480b.hs index 12802e8de3..2684c6de4e 100644 --- a/testsuite/tests/polykinds/T11480b.hs +++ b/testsuite/tests/polykinds/T11480b.hs @@ -21,25 +21,25 @@ module T11480b where -import GHC.Types (Constraint) +import Data.Kind (Constraint, Type) import Data.Type.Equality as Equality import Data.Type.Coercion as Coercion import qualified Prelude import Prelude (Either(..)) -newtype Y (p :: i -> j -> *) (a :: j) (b :: i) = Y { getY :: p b a } +newtype Y (p :: i -> j -> Type) (a :: j) (b :: i) = Y { getY :: p b a } -type family Op (p :: i -> j -> *) :: j -> i -> * where +type family Op (p :: i -> j -> Type) :: j -> i -> Type where Op (Y p) = p Op p = Y p -class Vacuous (p :: i -> i -> *) (a :: i) +class Vacuous (p :: i -> i -> Type) (a :: i) instance Vacuous p a data Dict (p :: Constraint) where Dict :: p => Dict p -class Functor (Op p) (Nat p (->)) p => Category (p :: i -> i -> *) where +class Functor (Op p) (Nat p (->)) p => Category (p :: i -> i -> Type) where type Ob p :: i -> Constraint type Ob p = Vacuous p @@ -62,11 +62,16 @@ class Functor (Op p) (Nat p (->)) p => Category (p :: i -> i -> *) where default unop :: Op p ~ Y p => Op p b a -> p a b unop = getY -class (Category p, Category q) => Functor (p :: i -> i -> *) (q :: j -> j -> *) (f :: i -> j) | f -> p q where +class (Category p, Category q) => + Functor (p :: i -> i -> Type) + (q :: j -> j -> Type) + (f :: i -> j) | f -> p q where fmap :: p a b -> q (f a) (f b) -data Nat (p :: i -> i -> *) (q :: j -> j -> *) (f :: i -> j) (g :: i -> j) where - Nat :: (Functor p q f, Functor p q g) => { runNat :: forall a. Ob p a => q (f a) (g a) } -> Nat p q f g +data Nat (p :: i -> i -> Type) + (q :: j -> j -> Type) (f :: i -> j) (g :: i -> j) where + Nat :: (Functor p q f, Functor p q g) => + { runNat :: forall a. Ob p a => q (f a) (g a) } -> Nat p q f g instance (Category p, Category q) => Category (Nat p q) where type Ob (Nat p q) = Functor p q @@ -80,7 +85,8 @@ instance (Category p, Category q) => Category (Nat p q) where ob :: forall p q f a. Functor p q f => Ob p a :- Ob q (f a) ob = Sub (case source (fmap (id :: p a a) :: q (f a) (f a)) of Dict -> Dict) -instance (Category p, Category q) => Functor (Y (Nat p q)) (Nat (Nat p q) (->)) (Nat p q) where +instance (Category p, Category q) => + Functor (Y (Nat p q)) (Nat (Nat p q) (->)) (Nat p q) where fmap (Y f) = Nat (. f) instance (Category p, Category q) => Functor (Nat p q) (->) (Nat p q f) where diff --git a/testsuite/tests/polykinds/T11520.hs b/testsuite/tests/polykinds/T11520.hs index fa5a3bf4a4..eef999d4ba 100644 --- a/testsuite/tests/polykinds/T11520.hs +++ b/testsuite/tests/polykinds/T11520.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE RankNTypes, PolyKinds, TypeInType, GADTs, UndecidableSuperClasses #-} +{-# LANGUAGE RankNTypes, PolyKinds, GADTs, UndecidableSuperClasses #-} module T11520 where diff --git a/testsuite/tests/polykinds/T11523.hs b/testsuite/tests/polykinds/T11523.hs index 0313b0c46e..aff0f9ed90 100644 --- a/testsuite/tests/polykinds/T11523.hs +++ b/testsuite/tests/polykinds/T11523.hs @@ -15,7 +15,6 @@ {-# language FunctionalDependencies #-} {-# language UndecidableSuperClasses #-} {-# language UndecidableInstances #-} -{-# language TypeInType #-} module T11523 where diff --git a/testsuite/tests/polykinds/T11554.hs b/testsuite/tests/polykinds/T11554.hs index e7a35bd9d8..bca6b8277c 100644 --- a/testsuite/tests/polykinds/T11554.hs +++ b/testsuite/tests/polykinds/T11554.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE GADTs, TypeInType, RankNTypes #-} +{-# LANGUAGE GADTs, PolyKinds, RankNTypes #-} module T11554 where diff --git a/testsuite/tests/polykinds/T11616.hs b/testsuite/tests/polykinds/T11616.hs index 378032b7ed..16a62b33b2 100644 --- a/testsuite/tests/polykinds/T11616.hs +++ b/testsuite/tests/polykinds/T11616.hs @@ -1,6 +1,6 @@ {-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE TypeApplications #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} module T11616 where class Whoami a where diff --git a/testsuite/tests/polykinds/T11640.hs b/testsuite/tests/polykinds/T11640.hs index bbb4a53bfc..ade4cbc79d 100644 --- a/testsuite/tests/polykinds/T11640.hs +++ b/testsuite/tests/polykinds/T11640.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE GADTs, RankNTypes, TypeInType #-} +{-# LANGUAGE GADTs, RankNTypes, PolyKinds #-} module T11640 where diff --git a/testsuite/tests/polykinds/T11648.hs b/testsuite/tests/polykinds/T11648.hs index 15fcfa4e05..b8b70e8733 100644 --- a/testsuite/tests/polykinds/T11648.hs +++ b/testsuite/tests/polykinds/T11648.hs @@ -3,6 +3,8 @@ module T11648 where -class Monoidy (to :: k0 -> k1 -> *) (m :: k1) where +import Data.Kind + +class Monoidy (to :: k0 -> k1 -> Type) (m :: k1) where type MComp to m :: k1 -> k1 -> k0 mjoin :: MComp to m m m `to` m diff --git a/testsuite/tests/polykinds/T11648b.hs b/testsuite/tests/polykinds/T11648b.hs index 2ab27a6166..d50854d237 100644 --- a/testsuite/tests/polykinds/T11648b.hs +++ b/testsuite/tests/polykinds/T11648b.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds #-} module T11648b where diff --git a/testsuite/tests/polykinds/T11821a.hs b/testsuite/tests/polykinds/T11821a.hs index da96fe2c56..c5de2bbe53 100644 --- a/testsuite/tests/polykinds/T11821a.hs +++ b/testsuite/tests/polykinds/T11821a.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE GADTs, TypeInType, ConstraintKinds #-} +{-# LANGUAGE GADTs, DataKinds, PolyKinds, ConstraintKinds #-} module T11821a where import Data.Proxy type SameKind (a :: k1) (b :: k2) = ('Proxy :: Proxy k1) ~ ('Proxy :: Proxy k2) diff --git a/testsuite/tests/polykinds/T12055.hs b/testsuite/tests/polykinds/T12055.hs index 3ffc221b7b..cabc2dfbba 100644 --- a/testsuite/tests/polykinds/T12055.hs +++ b/testsuite/tests/polykinds/T12055.hs @@ -3,9 +3,9 @@ {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} {-# LANGUAGE TypeOperators #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE PolyKinds #-} -- The code from the ticket lacked these extensions, -- but crashed the compiler with "GHC internal error" diff --git a/testsuite/tests/polykinds/T12055a.hs b/testsuite/tests/polykinds/T12055a.hs index dab523861b..ebc4dc7cad 100644 --- a/testsuite/tests/polykinds/T12055a.hs +++ b/testsuite/tests/polykinds/T12055a.hs @@ -3,9 +3,9 @@ {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} {-# LANGUAGE TypeOperators #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE PolyKinds #-} {-# LANGUAGE FlexibleInstances, UndecidableInstances, FunctionalDependencies #-} diff --git a/testsuite/tests/polykinds/T12593.hs b/testsuite/tests/polykinds/T12593.hs index 867fb89284..8fd4f26578 100644 --- a/testsuite/tests/polykinds/T12593.hs +++ b/testsuite/tests/polykinds/T12593.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE GADTs, ConstraintKinds, PolyKinds, TypeInType, KindSignatures, RankNTypes #-} +{-# LANGUAGE GADTs, ConstraintKinds, PolyKinds, KindSignatures, RankNTypes #-} module T12593 where diff --git a/testsuite/tests/polykinds/T12668.hs b/testsuite/tests/polykinds/T12668.hs index 4640903cc5..c3d2902a25 100644 --- a/testsuite/tests/polykinds/T12668.hs +++ b/testsuite/tests/polykinds/T12668.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} {-# LANGUAGE RankNTypes #-} module T12668 where diff --git a/testsuite/tests/polykinds/T12718.hs b/testsuite/tests/polykinds/T12718.hs index 82d6dcd177..7bbe1d572e 100644 --- a/testsuite/tests/polykinds/T12718.hs +++ b/testsuite/tests/polykinds/T12718.hs @@ -1,5 +1,5 @@ {-# Language RebindableSyntax, NoImplicitPrelude, MagicHash, RankNTypes, - PolyKinds, ViewPatterns, TypeInType, FlexibleInstances #-} + PolyKinds, ViewPatterns, FlexibleInstances #-} module Main where diff --git a/testsuite/tests/polykinds/T13391.hs b/testsuite/tests/polykinds/T13391.hs deleted file mode 100644 index 6de3c3aa40..0000000000 --- a/testsuite/tests/polykinds/T13391.hs +++ /dev/null @@ -1,7 +0,0 @@ -{-# LANGUAGE PolyKinds, GADTs #-} - -module T13391 where - -data G (a :: k) where - GInt :: G Int - GMaybe :: G Maybe diff --git a/testsuite/tests/polykinds/T13391.stderr b/testsuite/tests/polykinds/T13391.stderr deleted file mode 100644 index 55fff35b3a..0000000000 --- a/testsuite/tests/polykinds/T13391.stderr +++ /dev/null @@ -1,7 +0,0 @@ - -T13391.hs:6:3: error: - • Data constructor ‘GInt’ constrains the choice of kind parameter: - k ~ * - Use TypeInType to allow this - • In the definition of data constructor ‘GInt’ - In the data type declaration for ‘G’ diff --git a/testsuite/tests/polykinds/T13625.hs b/testsuite/tests/polykinds/T13625.hs index 62d34611be..9367aa694f 100644 --- a/testsuite/tests/polykinds/T13625.hs +++ b/testsuite/tests/polykinds/T13625.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds #-} module T13625 where diff --git a/testsuite/tests/polykinds/T13659.hs b/testsuite/tests/polykinds/T13659.hs index 199ff08a8d..118a04f122 100644 --- a/testsuite/tests/polykinds/T13659.hs +++ b/testsuite/tests/polykinds/T13659.hs @@ -4,8 +4,10 @@ module T13659 where +import Data.Kind (Type) + -- format string parameterized by a list of types -data Format (fmt :: [*]) where +data Format (fmt :: [Type]) where X :: Format '[] -- empty string, i.e. "" L :: a -> String -> Format '[] -- string literal, e.g. "hello" S :: a -> Format '[String] -- "%s" diff --git a/testsuite/tests/polykinds/T13659.stderr b/testsuite/tests/polykinds/T13659.stderr index fac5cbb952..84e81d04c0 100644 --- a/testsuite/tests/polykinds/T13659.stderr +++ b/testsuite/tests/polykinds/T13659.stderr @@ -1,5 +1,5 @@ -T13659.hs:12:27: error: +T13659.hs:14:27: error: • Expected a type, but ‘a’ has kind ‘[*]’ • In the first argument of ‘Format’, namely ‘'[Int, a]’ In the type ‘Format '[Int, a]’ diff --git a/testsuite/tests/polykinds/T13738.hs b/testsuite/tests/polykinds/T13738.hs index 85a1048f53..8420ca9158 100644 --- a/testsuite/tests/polykinds/T13738.hs +++ b/testsuite/tests/polykinds/T13738.hs @@ -1,9 +1,9 @@ {-# LANGUAGE PolyKinds #-} -{-# LANGUAGE TypeInType #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} + module T13738 where import Data.Coerce diff --git a/testsuite/tests/polykinds/T13985.stderr b/testsuite/tests/polykinds/T13985.stderr index ec829dec4d..f60314a443 100644 --- a/testsuite/tests/polykinds/T13985.stderr +++ b/testsuite/tests/polykinds/T13985.stderr @@ -3,21 +3,21 @@ T13985.hs:12:1: error: • Kind variable ‘k’ is implicitly bound in data family ‘Fam’, but does not appear as the kind of any of its type variables. Perhaps you meant - to bind it (with TypeInType) explicitly somewhere? + to bind it explicitly somewhere? • In the data instance declaration for ‘Fam’ T13985.hs:15:15: error: • Kind variable ‘a’ is implicitly bound in type family ‘T’, but does not appear as the kind of any of its type variables. Perhaps you meant - to bind it (with TypeInType) explicitly somewhere? + to bind it explicitly somewhere? • In the type instance declaration for ‘T’ T13985.hs:22:3: error: • Kind variable ‘k’ is implicitly bound in associated data family ‘CD’, but does not appear as the kind of any of its type variables. Perhaps you meant - to bind it (with TypeInType) explicitly somewhere? + to bind it explicitly somewhere? • In the data instance declaration for ‘CD’ In the instance declaration for ‘C Type’ @@ -25,7 +25,7 @@ T13985.hs:23:8: error: • Kind variable ‘a’ is implicitly bound in associated type family ‘CT’, but does not appear as the kind of any of its type variables. Perhaps you meant - to bind it (with TypeInType) explicitly somewhere? + to bind it explicitly somewhere? • In the type instance declaration for ‘CT’ In the instance declaration for ‘C Type’ @@ -33,7 +33,7 @@ T13985.hs:27:3: error: • Kind variable ‘x’ is implicitly bound in associated type family ‘ZT’, but does not appear as the kind of any of its type variables. Perhaps you meant - to bind it (with TypeInType) explicitly somewhere? + to bind it explicitly somewhere? Type variables with inferred kinds: (k :: *) (a :: k) • In the default type instance declaration for ‘ZT’ In the class declaration for ‘Z’ diff --git a/testsuite/tests/polykinds/T14174.hs b/testsuite/tests/polykinds/T14174.hs index 7a58b70fc6..3fe4996225 100644 --- a/testsuite/tests/polykinds/T14174.hs +++ b/testsuite/tests/polykinds/T14174.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType, RankNTypes, KindSignatures, PolyKinds #-} +{-# LANGUAGE RankNTypes, KindSignatures, PolyKinds #-} module T14174 where data T k (x :: k) = MkT diff --git a/testsuite/tests/polykinds/T14174a.hs b/testsuite/tests/polykinds/T14174a.hs index 82f418bc9d..bdd3d7ee88 100644 --- a/testsuite/tests/polykinds/T14174a.hs +++ b/testsuite/tests/polykinds/T14174a.hs @@ -1,14 +1,15 @@ {-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE PolyKinds #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} module T14174a where import Data.Kind -data TyFun :: * -> * -> * -type a ~> b = TyFun a b -> * +data TyFun :: Type -> Type -> Type +type a ~> b = TyFun a b -> Type infixr 0 ~> type family Apply (f :: k1 ~> k2) (x :: k1) :: k2 diff --git a/testsuite/tests/polykinds/T14209.hs b/testsuite/tests/polykinds/T14209.hs index 3e0181c4ed..0f0648bd79 100644 --- a/testsuite/tests/polykinds/T14209.hs +++ b/testsuite/tests/polykinds/T14209.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds #-} module T14209 where data MyProxy k (a :: k) = MyProxy diff --git a/testsuite/tests/polykinds/T14270.hs b/testsuite/tests/polykinds/T14270.hs index 2d11a29993..3eed83c657 100644 --- a/testsuite/tests/polykinds/T14270.hs +++ b/testsuite/tests/polykinds/T14270.hs @@ -1,4 +1,3 @@ -{-# LANGUAGE TypeInType #-} {-# LANGUAGE ViewPatterns #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE RankNTypes #-} @@ -8,6 +7,7 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE TypeApplications #-} +{-# LANGUAGE PolyKinds #-} module T14270 (pattern App) where import Data.Kind (Type) diff --git a/testsuite/tests/polykinds/T14450.hs b/testsuite/tests/polykinds/T14450.hs index 3b8f5b7e70..8571829619 100644 --- a/testsuite/tests/polykinds/T14450.hs +++ b/testsuite/tests/polykinds/T14450.hs @@ -1,4 +1,6 @@ -{-# Language KindSignatures, TypeOperators, PolyKinds, TypeOperators, ConstraintKinds, TypeFamilies, DataKinds, TypeInType, GADTs, AllowAmbiguousTypes, InstanceSigs #-} +{-# Language KindSignatures, TypeOperators, PolyKinds, TypeOperators, + ConstraintKinds, TypeFamilies, DataKinds, GADTs, + AllowAmbiguousTypes, InstanceSigs #-} module T14450 where diff --git a/testsuite/tests/polykinds/T14450.stderr b/testsuite/tests/polykinds/T14450.stderr index c7caf04220..e8ff4aeae3 100644 --- a/testsuite/tests/polykinds/T14450.stderr +++ b/testsuite/tests/polykinds/T14450.stderr @@ -1,5 +1,5 @@ -T14450.hs:31:12: error: +T14450.hs:33:12: error: • Expected kind ‘k ~> k’, but ‘(IddSym0 :: Type ~> Type)’ has kind ‘* ~> *’ • In the first argument of ‘Dom’, namely diff --git a/testsuite/tests/polykinds/T14515.hs b/testsuite/tests/polykinds/T14515.hs index 15bdbfe31d..4a2540b925 100644 --- a/testsuite/tests/polykinds/T14515.hs +++ b/testsuite/tests/polykinds/T14515.hs @@ -1,5 +1,6 @@ {-# LANGUAGE RankNTypes #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE PolyKinds #-} module Bug where import Data.Kind diff --git a/testsuite/tests/polykinds/T14520.hs b/testsuite/tests/polykinds/T14520.hs index ed87035b24..23e903773b 100644 --- a/testsuite/tests/polykinds/T14520.hs +++ b/testsuite/tests/polykinds/T14520.hs @@ -1,4 +1,4 @@ -{-# Language TypeInType, TypeFamilies, TypeOperators #-} +{-# Language DataKinds, PolyKinds, TypeFamilies, TypeOperators #-} module T14520 where @@ -10,7 +10,7 @@ data family Sing (a::k) type family XXX (f::a~>>b) (x::a) :: b -type family Id :: (kat :: a ~>> (a ~>> *)) `XXX` (b :: a) `XXX` b +type family Id :: (kat :: a ~>> (a ~>> Type)) `XXX` (b :: a) `XXX` b sId :: Sing w -> Sing (Id :: bat w w) sId = sId diff --git a/testsuite/tests/polykinds/T14555.hs b/testsuite/tests/polykinds/T14555.hs index 0ab71b1b76..7f37a5ec9c 100644 --- a/testsuite/tests/polykinds/T14555.hs +++ b/testsuite/tests/polykinds/T14555.hs @@ -1,10 +1,10 @@ -{-# Language TypeInType #-} {-# Language TypeOperators, DataKinds, PolyKinds, GADTs #-} + module T14555 where import Data.Kind -import GHC.Types (TYPE) +import GHC.Types (TYPE, Type) data Exp :: [TYPE rep] -> TYPE rep -> Type where --data Exp (x :: [TYPE rep]) (y :: TYPE rep) where diff --git a/testsuite/tests/polykinds/T14561.hs b/testsuite/tests/polykinds/T14561.hs index f528e7c813..7b1f17e08e 100644 --- a/testsuite/tests/polykinds/T14561.hs +++ b/testsuite/tests/polykinds/T14561.hs @@ -1,5 +1,5 @@ -{-# LANGUAGE TypeInType #-} {-# LANGUAGE RankNTypes #-} +{-# LANGUAGE DataKinds #-} {-# LANGUAGE PolyKinds #-} {-# LANGUAGE MagicHash #-} diff --git a/testsuite/tests/polykinds/T14563.hs b/testsuite/tests/polykinds/T14563.hs index bedc99f54b..bdc05dd6df 100644 --- a/testsuite/tests/polykinds/T14563.hs +++ b/testsuite/tests/polykinds/T14563.hs @@ -1,6 +1,6 @@ -{-# Language TypeInType #-} {-# Language RankNTypes, KindSignatures, PolyKinds #-} {-# OPTIONS_GHC -fprint-explicit-runtime-reps #-} + import GHC.Types (TYPE) import Data.Kind diff --git a/testsuite/tests/polykinds/T14580.hs b/testsuite/tests/polykinds/T14580.hs index 6d11d78dfe..58983cc117 100644 --- a/testsuite/tests/polykinds/T14580.hs +++ b/testsuite/tests/polykinds/T14580.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE PolyKinds, DataKinds, TypeInType, TypeOperators #-} +{-# LANGUAGE PolyKinds, DataKinds, TypeOperators #-} module T14580 where import Data.Kind diff --git a/testsuite/tests/polykinds/T14710.stderr b/testsuite/tests/polykinds/T14710.stderr index 8d8a9785a8..0bbfb0d641 100644 --- a/testsuite/tests/polykinds/T14710.stderr +++ b/testsuite/tests/polykinds/T14710.stderr @@ -20,19 +20,11 @@ T14710.hs:18:24: error: In the type signature for ‘g2’ T14710.hs:21:31: error: - Variable ‘k’ used as both a kind and a type - Did you intend to use TypeInType? - -T14710.hs:21:31: error: Unexpected kind variable ‘k’ Perhaps you intended to use PolyKinds In the type signature for ‘h1’ T14710.hs:24:22: error: - Variable ‘k’ used as both a kind and a type - Did you intend to use TypeInType? - -T14710.hs:24:22: error: Unexpected kind variable ‘k’ Perhaps you intended to use PolyKinds In the type signature for ‘h2’ diff --git a/testsuite/tests/polykinds/T14846.hs b/testsuite/tests/polykinds/T14846.hs index 7b96e942f3..0f70962562 100644 --- a/testsuite/tests/polykinds/T14846.hs +++ b/testsuite/tests/polykinds/T14846.hs @@ -6,7 +6,7 @@ {-# LANGUAGE InstanceSigs #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds #-} module T14846 where import Data.Kind diff --git a/testsuite/tests/polykinds/T14873.hs b/testsuite/tests/polykinds/T14873.hs index 6bb66ec640..9450a019bc 100644 --- a/testsuite/tests/polykinds/T14873.hs +++ b/testsuite/tests/polykinds/T14873.hs @@ -2,8 +2,9 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} {-# LANGUAGE TypeOperators #-} +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE PolyKinds #-} module T14873 where import Data.Kind (Type) diff --git a/testsuite/tests/polykinds/T15170.hs b/testsuite/tests/polykinds/T15170.hs index a105ca5344..02de90ae12 100644 --- a/testsuite/tests/polykinds/T15170.hs +++ b/testsuite/tests/polykinds/T15170.hs @@ -1,7 +1,7 @@ {-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds #-} {-# LANGUAGE TypeOperators #-} module T15170 where diff --git a/testsuite/tests/polykinds/T5716.hs b/testsuite/tests/polykinds/T5716.hs index 1b705a36b1..217e4c399a 100644 --- a/testsuite/tests/polykinds/T5716.hs +++ b/testsuite/tests/polykinds/T5716.hs @@ -4,10 +4,11 @@ module T5716 where +import Data.Kind (Type) data family DF a data instance DF Int = DFInt data U = U1 (DF Int) -data I :: U -> * where I1 :: I (U1 DFInt) +data I :: U -> Type where I1 :: I (U1 DFInt) diff --git a/testsuite/tests/polykinds/T5716.stderr b/testsuite/tests/polykinds/T5716.stderr index 0e3596da32..41bf517339 100644 --- a/testsuite/tests/polykinds/T5716.stderr +++ b/testsuite/tests/polykinds/T5716.stderr @@ -1,7 +1,7 @@ -T5716.hs:13:33: error: - • Data constructor ‘U1’ cannot be used here - (perhaps you intended to use TypeInType) - • In the first argument of ‘I’, namely ‘(U1 DFInt)’ +T5716.hs:14:39: error: + • Data constructor ‘DFInt’ cannot be used here + (it comes from a data family instance) + • In the first argument of ‘U1’, namely ‘DFInt’ + In the first argument of ‘I’, namely ‘(U1 DFInt)’ In the type ‘I (U1 DFInt)’ - In the definition of data constructor ‘I1’ diff --git a/testsuite/tests/polykinds/T6021.stderr b/testsuite/tests/polykinds/T6021.stderr deleted file mode 100644 index d747043d27..0000000000 --- a/testsuite/tests/polykinds/T6021.stderr +++ /dev/null @@ -1,4 +0,0 @@ - -T6021.hs:5:22: error: - Variable ‘b’ used as both a kind and a type - Did you intend to use TypeInType? diff --git a/testsuite/tests/polykinds/T6035.hs b/testsuite/tests/polykinds/T6035.hs index a6f5ffe54a..c89de8e73d 100644 --- a/testsuite/tests/polykinds/T6035.hs +++ b/testsuite/tests/polykinds/T6035.hs @@ -3,9 +3,11 @@ module T6035 where +import Data.Kind (Type) + data Nat = Zero | Succ Nat -type family Sing (a :: k) :: k -> * +type family Sing (a :: k) :: k -> Type data SNat n where SZero :: SNat Zero diff --git a/testsuite/tests/polykinds/T6039.stderr b/testsuite/tests/polykinds/T6039.stderr index 048efd538f..bcaa2e1b4c 100644 --- a/testsuite/tests/polykinds/T6039.stderr +++ b/testsuite/tests/polykinds/T6039.stderr @@ -1,4 +1,10 @@ -T6039.hs:5:14: error: - • Expected kind ‘* -> *’, but ‘j’ has kind ‘*’ - • In the kind ‘j k’ +T6039.hs:5:1: error: + You have written a *complete user-suppled kind signature*, + but the following variable is undetermined: k0 :: * + Perhaps add a kind signature. + Inferred kinds of user-written variables: + j :: k0 -> * + k :: k0 + a :: j k + Inferred result kind: * diff --git a/testsuite/tests/polykinds/T6093.hs b/testsuite/tests/polykinds/T6093.hs index 3fdeb207f8..1063b8661d 100644 --- a/testsuite/tests/polykinds/T6093.hs +++ b/testsuite/tests/polykinds/T6093.hs @@ -1,13 +1,12 @@ -{-# LANGUAGE GADTs, PolyKinds #-} +{-# LANGUAGE GADTs, RankNTypes, PolyKinds #-} module T6093 where -- Polymorphic kind recursion -data R :: k -> * where +data R :: forall k. k -> * where MkR :: R f -> R (f ()) - data IOWitness (a :: k) = IOW -data Type :: k -> * where +data Type :: forall k. k -> * where SimpleType :: IOWitness a -> Type a ConstructedType :: Type f -> Type a -> Type (f a) diff --git a/testsuite/tests/polykinds/T7404.stderr b/testsuite/tests/polykinds/T7404.stderr deleted file mode 100644 index abae5a6215..0000000000 --- a/testsuite/tests/polykinds/T7404.stderr +++ /dev/null @@ -1,4 +0,0 @@ - -T7404.hs:4:32: error: - Variable ‘x’ used as both a kind and a type - Did you intend to use TypeInType? diff --git a/testsuite/tests/polykinds/T7594.hs b/testsuite/tests/polykinds/T7594.hs index ae21956d45..925b3f9ace 100644 --- a/testsuite/tests/polykinds/T7594.hs +++ b/testsuite/tests/polykinds/T7594.hs @@ -10,9 +10,11 @@ module T7594 where -import GHC.Exts (Constraint) +import Data.Kind (Constraint, Type) -class (c1 t, c2 t) => (:&:) (c1 :: * -> Constraint) (c2 :: * -> Constraint) (t :: *) +class (c1 t, c2 t) => (:&:) (c1 :: Type -> Constraint) + (c2 :: Type -> Constraint) + (t :: Type) instance (c1 t, c2 t) => (:&:) c1 c2 t data ColD c where diff --git a/testsuite/tests/polykinds/T7594.stderr b/testsuite/tests/polykinds/T7594.stderr index 3ea08a3fb8..1b4b9017f7 100644 --- a/testsuite/tests/polykinds/T7594.stderr +++ b/testsuite/tests/polykinds/T7594.stderr @@ -1,17 +1,18 @@ -T7594.hs:35:12: error: +T7594.hs:37:12: error: • Couldn't match type ‘b’ with ‘IO ()’ ‘b’ is untouchable inside the constraints: (:&:) c0 Real a bound by a type expected by the context: forall a. (:&:) c0 Real a => a -> b - at T7594.hs:35:8-19 + at T7594.hs:37:8-19 ‘b’ is a rigid type variable bound by - the inferred type of bar2 :: b at T7594.hs:35:1-19 + the inferred type of bar2 :: b + at T7594.hs:37:1-19 Possible fix: add a type signature for ‘bar2’ Expected type: a -> b Actual type: a -> IO () • In the first argument of ‘app’, namely ‘print’ In the expression: app print q2 In an equation for ‘bar2’: bar2 = app print q2 - • Relevant bindings include bar2 :: b (bound at T7594.hs:35:1) + • Relevant bindings include bar2 :: b (bound at T7594.hs:37:1) diff --git a/testsuite/tests/polykinds/T8566.hs b/testsuite/tests/polykinds/T8566.hs index 248febb586..2ffdecfd6e 100644 --- a/testsuite/tests/polykinds/T8566.hs +++ b/testsuite/tests/polykinds/T8566.hs @@ -10,10 +10,12 @@ module T8566 where -data U (s :: *) = forall v. AA v [U s] +import Data.Kind (Type) + +data U (s :: Type) = forall v. AA v [U s] -- AA :: forall (s:*) (v:*). v -> [U s] -> U s -data I (u :: U *) (r :: [*]) :: * where +data I (u :: U Type) (r :: [Type]) :: Type where A :: I (AA t as) r -- Existential k -- A :: forall (u:U *) (r:[*]) Universal @@ -22,7 +24,7 @@ data I (u :: U *) (r :: [*]) :: * where -- I u r -- fs unused, but needs to be present for the bug -class C (u :: U *) (r :: [*]) (fs :: [*]) where +class C (u :: U Type) (r :: [Type]) (fs :: [Type]) where c :: I u r -> I u r -- c :: forall (u :: U *) (r :: [*]) (fs :: [*]). C u r fs => I u r -> I u r diff --git a/testsuite/tests/polykinds/T8566.stderr b/testsuite/tests/polykinds/T8566.stderr index d368d055f0..23dddf66c7 100644 --- a/testsuite/tests/polykinds/T8566.stderr +++ b/testsuite/tests/polykinds/T8566.stderr @@ -1,18 +1,18 @@ -T8566.hs:32:9: error: +T8566.hs:34:9: error: • Could not deduce (C ('AA (t (I a ps)) as) ps fs0) arising from a use of ‘c’ from the context: C ('AA (t (I a ps)) as) ps fs - bound by the instance declaration at T8566.hs:30:10-67 + bound by the instance declaration at T8566.hs:32:10-67 or from: 'AA t (a : as) ~ 'AA t1 as1 bound by a pattern with constructor: A :: forall v (t :: v) (as :: [U *]) (r :: [*]). I ('AA t as) r, in an equation for ‘c’ - at T8566.hs:32:5 + at T8566.hs:34:5 The type variable ‘fs0’ is ambiguous Relevant bindings include c :: I ('AA t (a : as)) ps -> I ('AA t (a : as)) ps - (bound at T8566.hs:32:3) + (bound at T8566.hs:34:3) • In the expression: c undefined In an equation for ‘c’: c A = c undefined In the instance declaration for ‘C ('AA t (a : as)) ps fs’ diff --git a/testsuite/tests/polykinds/T8566a.hs b/testsuite/tests/polykinds/T8566a.hs index 3d20c3e27d..22b628553f 100644 --- a/testsuite/tests/polykinds/T8566a.hs +++ b/testsuite/tests/polykinds/T8566a.hs @@ -6,13 +6,15 @@ {-# LANGUAGE TypeOperators #-} module T8566a where +import Data.Kind (Type) + data Field = forall k. APP k [Field] -data InField (u :: Field) :: * where +data InField (u :: Field) :: Type where A :: AppVars t (ExpandField args) -> InField (APP t args) -type family ExpandField (args :: [Field]) :: [*] -type family AppVars (t :: k) (vs :: [*]) :: * +type family ExpandField (args :: [Field]) :: [Type] +type family AppVars (t :: k) (vs :: [Type]) :: Type -- This function fails to compile, because we discard -- 'given' kind equalities. See comment 7 in Trac #8566 diff --git a/testsuite/tests/polykinds/T8985.hs b/testsuite/tests/polykinds/T8985.hs index 28a354be27..d9e8d2c66a 100644 --- a/testsuite/tests/polykinds/T8985.hs +++ b/testsuite/tests/polykinds/T8985.hs @@ -1,12 +1,14 @@ {-# LANGUAGE DataKinds, PolyKinds, TypeFamilies, GADTs, TypeOperators #-} -module T8905 where +module T8985 where + +import Data.Kind (Type) data X (xs :: [k]) = MkX -data Y :: (k -> *) -> [k] -> * where +data Y :: (k -> Type) -> [k] -> Type where MkY :: f x -> Y f (x ': xs) -type family F (a :: [[*]]) :: * +type family F (a :: [[Type]]) :: Type type instance F xss = Y X xss works :: Y X '[ '[ ] ] -> () diff --git a/testsuite/tests/polykinds/T9222.hs b/testsuite/tests/polykinds/T9222.hs index 8e46ccb3c5..3af1458427 100644 --- a/testsuite/tests/polykinds/T9222.hs +++ b/testsuite/tests/polykinds/T9222.hs @@ -1,6 +1,7 @@ {-# LANGUAGE RankNTypes, GADTs, DataKinds, PolyKinds, TypeOperators, TypeFamilies #-} module T9222 where +import Data.Kind import Data.Proxy -- Nov 2014: actually the type of Want is ambiguous if we @@ -9,5 +10,5 @@ import Data.Proxy -- So this program is erroneous. (But the original ticket was -- a crash, and that's still fixed!) -data Want :: (i,j) -> * where +data Want :: (i,j) -> Type where Want :: (a ~ '(b,c) => Proxy b) -> Want a diff --git a/testsuite/tests/polykinds/T9222.stderr b/testsuite/tests/polykinds/T9222.stderr index 604cc1b7ec..be80a79198 100644 --- a/testsuite/tests/polykinds/T9222.stderr +++ b/testsuite/tests/polykinds/T9222.stderr @@ -1,16 +1,16 @@ -T9222.hs:13:3: error: +T9222.hs:14:3: error: • Couldn't match type ‘c0’ with ‘c’ ‘c0’ is untouchable inside the constraints: a ~ '(b0, c0) bound by the type of the constructor ‘Want’: (a ~ '(b0, c0)) => Proxy b0 - at T9222.hs:13:3-43 + at T9222.hs:14:3-43 ‘c’ is a rigid type variable bound by the type of the constructor ‘Want’: forall i1 j1 (a :: (i1, j1)) (b :: i1) (c :: j1). ((a ~ '(b, c)) => Proxy b) -> Want a - at T9222.hs:13:3-43 + at T9222.hs:14:3-43 • In the ambiguity check for ‘Want’ To defer the ambiguity check to use sites, enable AllowAmbiguousTypes In the definition of data constructor ‘Want’ diff --git a/testsuite/tests/polykinds/all.T b/testsuite/tests/polykinds/all.T index 4fe88b2385..c3250b7ffd 100644 --- a/testsuite/tests/polykinds/all.T +++ b/testsuite/tests/polykinds/all.T @@ -38,7 +38,7 @@ test('T6036', normal, compile, ['']) test('T6025', normal, run_command, ['$MAKE -s --no-print-directory T6025']) test('T6002', normal, compile, ['']) test('T6039', normal, compile_fail, ['']) -test('T6021', normal, compile_fail, ['']) +test('T6021', normal, compile, ['']) test('T6020a', normal, compile, ['']) test('T6044', normal, compile, ['']) test('T6054', normal, run_command, ['$MAKE -s --no-print-directory T6054']) @@ -74,7 +74,7 @@ test('T7341', normal, compile_fail,['']) test('T7422', normal, compile,['']) test('T7433', normal, compile_fail,['']) test('T7438', normal, run_command, ['$MAKE -s --no-print-directory T7438']) -test('T7404', normal, compile_fail,['']) +test('T7404', normal, compile,['']) test('T7502', normal, compile,['']) test('T7488', normal, compile,['']) test('T7594', normal, compile_fail,['']) @@ -170,7 +170,6 @@ test('BadKindVar', normal, compile_fail, ['']) test('T13738', normal, compile_fail, ['']) test('T14209', normal, compile, ['']) test('T14265', normal, compile_fail, ['']) -test('T13391', normal, compile_fail, ['']) test('T13391a', normal, compile, ['']) test('T14270', normal, compile, ['']) test('T14450', normal, compile_fail, ['']) diff --git a/testsuite/tests/printer/Ppr040.hs b/testsuite/tests/printer/Ppr040.hs index a9885a9d53..6fc7b09b15 100644 --- a/testsuite/tests/printer/Ppr040.hs +++ b/testsuite/tests/printer/Ppr040.hs @@ -1,5 +1,5 @@ {-# LANGUAGE TemplateHaskell, RankNTypes, TypeOperators, DataKinds, - PolyKinds, TypeFamilies, GADTs, TypeInType #-} + PolyKinds, TypeFamilies, GADTs, StarIsType #-} module RAE_T32a where diff --git a/testsuite/tests/printer/Ppr045.hs b/testsuite/tests/printer/Ppr045.hs index 73364982b4..b4843afc51 100644 --- a/testsuite/tests/printer/Ppr045.hs +++ b/testsuite/tests/printer/Ppr045.hs @@ -5,6 +5,7 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeOperators #-} +{-# LANGUAGE StarIsType #-} {-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE UndecidableSuperClasses #-} {-# OPTIONS_GHC -fwarn-incomplete-patterns -fwarn-overlapping-patterns #-} diff --git a/testsuite/tests/rename/should_fail/T11592.hs b/testsuite/tests/rename/should_fail/T11592.hs index b963cdf8ba..53714f1a68 100644 --- a/testsuite/tests/rename/should_fail/T11592.hs +++ b/testsuite/tests/rename/should_fail/T11592.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} module Bug11592 where diff --git a/testsuite/tests/rename/should_fail/T13947.stderr b/testsuite/tests/rename/should_fail/T13947.stderr index 8a636a2bb9..8533f9f743 100644 --- a/testsuite/tests/rename/should_fail/T13947.stderr +++ b/testsuite/tests/rename/should_fail/T13947.stderr @@ -1,3 +1,3 @@ -T13947.hs:4:12: error: +T13947.hs:4:16: error: Not in scope: type constructor or class ‘:~:’ diff --git a/testsuite/tests/simplCore/should_compile/T13025a.hs b/testsuite/tests/simplCore/should_compile/T13025a.hs index 3f9a4cbe21..cdfb899c1a 100644 --- a/testsuite/tests/simplCore/should_compile/T13025a.hs +++ b/testsuite/tests/simplCore/should_compile/T13025a.hs @@ -4,17 +4,19 @@ TypeOperators #-} module T13025a where +import Data.Kind (Type) + data Nat = Z | S Nat data Proxy a = Proxy -data Field :: (k,*) -> * where +data Field :: (k,Type) -> Type where Field :: a -> Field '(s,a) type family Index r rs :: Nat where Index r (r ': rs) = 'Z Index r (s ': rs) = 'S (Index r rs) -data Rec (rs :: [ (k,*) ]) where +data Rec (rs :: [ (k,Type) ]) where Nil :: Rec '[] (:&) :: Field r -> Rec rs -> Rec (r ': rs) infixr 5 :& diff --git a/testsuite/tests/simplCore/should_compile/T13658.hs b/testsuite/tests/simplCore/should_compile/T13658.hs index 0890e89b7f..662fa66022 100644 --- a/testsuite/tests/simplCore/should_compile/T13658.hs +++ b/testsuite/tests/simplCore/should_compile/T13658.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE RankNTypes #-} diff --git a/testsuite/tests/simplCore/should_compile/T14270a.hs b/testsuite/tests/simplCore/should_compile/T14270a.hs index 840b1e8436..5054b43a2c 100644 --- a/testsuite/tests/simplCore/should_compile/T14270a.hs +++ b/testsuite/tests/simplCore/should_compile/T14270a.hs @@ -1,4 +1,5 @@ -{-# LANGUAGE TypeApplications, ScopedTypeVariables, GADTs, RankNTypes, TypeInType, KindSignatures #-} +{-# LANGUAGE TypeApplications, ScopedTypeVariables, GADTs, RankNTypes, + PolyKinds, KindSignatures #-} {-# OPTIONS_GHC -O2 #-} -- We are provoking a bug in SpecConstr module T14270a where diff --git a/testsuite/tests/simplCore/should_compile/T15186A.hs b/testsuite/tests/simplCore/should_compile/T15186A.hs index 472d01c0af..151fcec987 100644 --- a/testsuite/tests/simplCore/should_compile/T15186A.hs +++ b/testsuite/tests/simplCore/should_compile/T15186A.hs @@ -32,7 +32,7 @@ data BinomialTree (h::Height) (f :: k -> Type) :: Ctx k -> Type where -> !(BinomialTree ('Succ h) f x) -> BinomialTree h f x -newtype Assignment (f :: k -> *) (ctx :: Ctx k) +newtype Assignment (f :: k -> Type) (ctx :: Ctx k) = Assignment (BinomialTree 'Zero f ctx) data AssignView f ctx where diff --git a/testsuite/tests/simplCore/should_compile/T4903a.hs b/testsuite/tests/simplCore/should_compile/T4903a.hs index 8c8700038e..df6cb5bd32 100644 --- a/testsuite/tests/simplCore/should_compile/T4903a.hs +++ b/testsuite/tests/simplCore/should_compile/T4903a.hs @@ -8,18 +8,20 @@ module T4903a where +import Data.Kind + class El phi ix where proof :: phi ix class Fam phi where from :: phi ix -> ix -> PF phi I0 ix -type family PF (phi :: * -> *) :: (* -> *) -> * -> * +type family PF (phi :: Type -> Type) :: (Type -> Type) -> Type -> Type data I0 a = I0 a -data I xi (r :: * -> *) ix = I (r xi) -data (f :*: g) (r :: * -> *) ix = f r ix :*: g r ix +data I xi (r :: Type -> Type) ix = I (r xi) +data (f :*: g) (r :: Type -> Type) ix = f r ix :*: g r ix class HEq phi f where heq :: (forall ix. phi ix -> r ix -> Bool) @@ -45,7 +47,7 @@ tree :: Tree -- The problem only occurs on an inifite (or very large) structure tree = Bin tree tree -data TreeF :: * -> * where Tree :: TreeF Tree +data TreeF :: Type -> Type where Tree :: TreeF Tree type instance PF TreeF = I Tree :*: I Tree -- If the representation is only |I Tree| then there is no problem diff --git a/testsuite/tests/simplCore/should_run/T13750a.hs b/testsuite/tests/simplCore/should_run/T13750a.hs index 7ed72ca241..ac3806e7f9 100644 --- a/testsuite/tests/simplCore/should_run/T13750a.hs +++ b/testsuite/tests/simplCore/should_run/T13750a.hs @@ -6,14 +6,15 @@ {-# LANGUAGE ViewPatterns #-} module T13750a where +import Data.Kind (Type) import Unsafe.Coerce -type family AnyT :: * where {} -type family AnyList :: [*] where {} +type family AnyT :: Type where {} +type family AnyList :: [Type] where {} -newtype NP (xs :: [*]) = NP [AnyT] +newtype NP (xs :: [Type]) = NP [AnyT] -data IsNP (xs :: [*]) where +data IsNP (xs :: [Type]) where IsNil :: IsNP '[] IsCons :: x -> NP xs -> IsNP (x ': xs) @@ -34,9 +35,9 @@ pattern x :* xs <- (isNP -> IsCons x xs) x :* NP xs = NP (unsafeCoerce x : xs) infixr 5 :* -data NS (xs :: [[*]]) = NS !Int (NP AnyList) +data NS (xs :: [[Type]]) = NS !Int (NP AnyList) -data IsNS (xs :: [[*]]) where +data IsNS (xs :: [[Type]]) where IsZ :: NP x -> IsNS (x ': xs) IsS :: NS xs -> IsNS (x ': xs) diff --git a/testsuite/tests/th/T11463.hs b/testsuite/tests/th/T11463.hs index 1faf5964f4..3cb57d1cea 100644 --- a/testsuite/tests/th/T11463.hs +++ b/testsuite/tests/th/T11463.hs @@ -1,5 +1,5 @@ {-# LANGUAGE TemplateHaskell #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds #-} module Main where import Data.Kind diff --git a/testsuite/tests/th/T11484.hs b/testsuite/tests/th/T11484.hs index d8c0708bd2..e1e30fc694 100644 --- a/testsuite/tests/th/T11484.hs +++ b/testsuite/tests/th/T11484.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} module T11484 where diff --git a/testsuite/tests/th/T13642.hs b/testsuite/tests/th/T13642.hs index 090b891433..ab655c0e4a 100644 --- a/testsuite/tests/th/T13642.hs +++ b/testsuite/tests/th/T13642.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE GADTs, TypeInType, TemplateHaskell, RankNTypes #-} +{-# LANGUAGE GADTs, PolyKinds, TemplateHaskell, RankNTypes #-} module T13642 where import Data.Kind (Type) diff --git a/testsuite/tests/th/T13781.hs b/testsuite/tests/th/T13781.hs index 7498f56bae..2fd2f1a3d4 100644 --- a/testsuite/tests/th/T13781.hs +++ b/testsuite/tests/th/T13781.hs @@ -1,5 +1,5 @@ {-# LANGUAGE TemplateHaskell #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} module T13781 where import Data.Kind diff --git a/testsuite/tests/th/T14060.hs b/testsuite/tests/th/T14060.hs index 5527b25b6e..8c4f2ddc95 100644 --- a/testsuite/tests/th/T14060.hs +++ b/testsuite/tests/th/T14060.hs @@ -2,7 +2,7 @@ {-# LANGUAGE ExistentialQuantification #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeFamilyDependencies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} module Main where import Data.Kind diff --git a/testsuite/tests/th/T14869.hs b/testsuite/tests/th/T14869.hs index c58d4e2720..4b0dcdc171 100644 --- a/testsuite/tests/th/T14869.hs +++ b/testsuite/tests/th/T14869.hs @@ -1,7 +1,7 @@ {-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds #-} module T14869 where import Data.Kind diff --git a/testsuite/tests/th/T8031.hs b/testsuite/tests/th/T8031.hs index 9f06c06ed6..08081ed6fd 100644 --- a/testsuite/tests/th/T8031.hs +++ b/testsuite/tests/th/T8031.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TemplateHaskell, RankNTypes, TypeOperators, TypeInType, +{-# LANGUAGE TemplateHaskell, RankNTypes, TypeOperators, DataKinds, PolyKinds, GADTs #-} module T8031 where @@ -6,7 +6,7 @@ module T8031 where import Data.Proxy import Data.Kind -data SList :: [k] -> * where +data SList :: [k] -> Type where SCons :: Proxy h -> Proxy t -> SList (h ': t) $( [d| foo :: forall (a :: k). Proxy a diff --git a/testsuite/tests/th/TH_RichKinds2.hs b/testsuite/tests/th/TH_RichKinds2.hs index ab3e107d0f..9ac13a157b 100644 --- a/testsuite/tests/th/TH_RichKinds2.hs +++ b/testsuite/tests/th/TH_RichKinds2.hs @@ -8,6 +8,7 @@ module TH_RichKinds2 where +import qualified Data.Kind as K import Data.Char import Data.List import Language.Haskell.TH @@ -32,7 +33,7 @@ $( let fixKs :: String -> String -- need to remove TH renaming index from k vari if length index == 0 then s else prefix ++ "0" ++ (fixKs rest) in - do decls <- [d| data SMaybe :: (k -> *) -> (Maybe k) -> * where + do decls <- [d| data SMaybe :: (k -> K.Type) -> (Maybe k) -> K.Type where SNothing :: SMaybe s 'Nothing SJust :: s a -> SMaybe s ('Just a) @@ -42,7 +43,7 @@ $( let fixKs :: String -> String -- need to remove TH renaming index from k vari reportWarning (fixKs (pprint decls)) return decls ) -data SBool :: Bool -> * where +data SBool :: Bool -> K.Type where SFalse :: SBool 'False STrue :: SBool 'True diff --git a/testsuite/tests/th/TH_RichKinds2.stderr b/testsuite/tests/th/TH_RichKinds2.stderr index 6b0662218a..8970da8bdb 100644 --- a/testsuite/tests/th/TH_RichKinds2.stderr +++ b/testsuite/tests/th/TH_RichKinds2.stderr @@ -1,5 +1,5 @@ -TH_RichKinds2.hs:24:4: warning: +TH_RichKinds2.hs:25:4: warning: data SMaybe_0 :: (k_0 -> *) -> GHC.Base.Maybe k_0 -> * where SNothing_2 :: SMaybe_0 s_3 'GHC.Base.Nothing SJust_4 :: (s_5 a_6) -> SMaybe_0 s_5 ('GHC.Base.Just a_6) diff --git a/testsuite/tests/typecheck/should_compile/SplitWD.hs b/testsuite/tests/typecheck/should_compile/SplitWD.hs index 370b077b6e..5281cdbf0e 100644 --- a/testsuite/tests/typecheck/should_compile/SplitWD.hs +++ b/testsuite/tests/typecheck/should_compile/SplitWD.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE ScopedTypeVariables, TypeInType, TypeOperators, +{-# LANGUAGE ScopedTypeVariables, TypeOperators, DataKinds, PolyKinds, TypeFamilies, GADTs, StandaloneDeriving #-} module SplitWD where diff --git a/testsuite/tests/typecheck/should_compile/T10432.hs b/testsuite/tests/typecheck/should_compile/T10432.hs index 7a9821e6cf..ec46f17f14 100644 --- a/testsuite/tests/typecheck/should_compile/T10432.hs +++ b/testsuite/tests/typecheck/should_compile/T10432.hs @@ -2,15 +2,16 @@ DataKinds, RankNTypes, GADTs, TypeOperators #-} module T10432 where +import Data.Kind (Type) import Data.Type.Equality data WrappedType = forall a. WrapType a; -matchReflK :: forall (a :: ka) (b :: kb) (r :: *). +matchReflK :: forall (a :: ka) (b :: kb) (r :: Type). ('WrapType a :~: 'WrapType b) -> (('WrapType a ~ 'WrapType b) => r) -> r; matchReflK Refl r = r; -matchReflK2 :: forall (a :: ka) (b :: kb) (r :: *). +matchReflK2 :: forall (a :: ka) (b :: kb) (r :: Type). ('WrapType a :~: 'WrapType b) -> r matchReflK2 x = let foo :: ('WrapType a ~ 'WrapType b) => r foo = undefined diff --git a/testsuite/tests/typecheck/should_compile/T11237.hs b/testsuite/tests/typecheck/should_compile/T11237.hs index 422aefdb67..db15a7b337 100644 --- a/testsuite/tests/typecheck/should_compile/T11237.hs +++ b/testsuite/tests/typecheck/should_compile/T11237.hs @@ -1,6 +1,6 @@ -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, KindSignatures #-} {-# LANGUAGE GADTs #-} -module TypeInTypeBug where +module T11237 where import qualified Data.Kind diff --git a/testsuite/tests/typecheck/should_compile/T11348.hs b/testsuite/tests/typecheck/should_compile/T11348.hs index 2548dbdab7..6edc0acd3e 100644 --- a/testsuite/tests/typecheck/should_compile/T11348.hs +++ b/testsuite/tests/typecheck/should_compile/T11348.hs @@ -2,7 +2,6 @@ {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE DataKinds #-} -{-# LANGUAGE TypeInType #-} module T11348 where diff --git a/testsuite/tests/typecheck/should_compile/T11524.hs b/testsuite/tests/typecheck/should_compile/T11524.hs index d257554439..d6e2adf4f4 100644 --- a/testsuite/tests/typecheck/should_compile/T11524.hs +++ b/testsuite/tests/typecheck/should_compile/T11524.hs @@ -2,7 +2,6 @@ {-# LANGUAGE PolyKinds #-} {-# LANGUAGE ExplicitForAll #-} {-# LANGUAGE PatternSynonyms #-} -{-# LANGUAGE TypeInType #-} module T11524 where diff --git a/testsuite/tests/typecheck/should_compile/T11723.hs b/testsuite/tests/typecheck/should_compile/T11723.hs index 1933024f2e..636e40fdb0 100644 --- a/testsuite/tests/typecheck/should_compile/T11723.hs +++ b/testsuite/tests/typecheck/should_compile/T11723.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds #-} module Example where import Data.Typeable diff --git a/testsuite/tests/typecheck/should_compile/T11811.hs b/testsuite/tests/typecheck/should_compile/T11811.hs index 16a225b4cf..a3fadb92e7 100644 --- a/testsuite/tests/typecheck/should_compile/T11811.hs +++ b/testsuite/tests/typecheck/should_compile/T11811.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType, GADTs #-} +{-# LANGUAGE PolyKinds, GADTs #-} module T11811 where diff --git a/testsuite/tests/typecheck/should_compile/T12133.hs b/testsuite/tests/typecheck/should_compile/T12133.hs index f2502a786a..f35c51000d 100644 --- a/testsuite/tests/typecheck/should_compile/T12133.hs +++ b/testsuite/tests/typecheck/should_compile/T12133.hs @@ -11,10 +11,10 @@ module T12133 where import GHC.Classes (IP(..)) -import GHC.Exts (Constraint) +import Data.Kind (Constraint, Type) -- | From "Data.Constraint": -data Dict :: Constraint -> * where Dict :: a => Dict a +data Dict :: Constraint -> Type where Dict :: a => Dict a newtype a :- b = Sub (a => Dict b) @@ -65,4 +65,4 @@ t.hs:44:13: error: foo :: (c1, c2) :- c3 -> (c1, (IP sym ty, c2)) :- (IP sym ty, c3) (bound at t.hs:40:1) Failed, modules loaded: none. --}
\ No newline at end of file +-} diff --git a/testsuite/tests/typecheck/should_compile/T12381.hs b/testsuite/tests/typecheck/should_compile/T12381.hs index 9d4d731374..102a48321c 100644 --- a/testsuite/tests/typecheck/should_compile/T12381.hs +++ b/testsuite/tests/typecheck/should_compile/T12381.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType, TypeFamilies #-} +{-# LANGUAGE DataKinds, PolyKinds, TypeFamilies #-} module Kinds where import GHC.Types diff --git a/testsuite/tests/typecheck/should_compile/T12734.hs b/testsuite/tests/typecheck/should_compile/T12734.hs index a3b26d5aaf..e88d21a233 100644 --- a/testsuite/tests/typecheck/should_compile/T12734.hs +++ b/testsuite/tests/typecheck/should_compile/T12734.hs @@ -20,6 +20,7 @@ module T12734 where import Prelude +import Data.Kind import Control.Applicative import Control.Monad.Fix import Control.Monad.Trans.Identity @@ -30,14 +31,14 @@ import Control.Monad.IO.Class data A data B data Net -data Type +data Ty data Layer4 t l data TermStore -- Helpers: Stack -data Stack layers (t :: * -> *) where +data Stack layers (t :: Type -> Type) where SLayer :: t l -> Stack ls t -> Stack (l ': ls) t SNull :: Stack '[] t @@ -57,28 +58,35 @@ type TermStack t layers = Stack layers (Layer4 (Expr t layers)) class Monad m => Constructor m t instance ( Monad m, expr ~ Expr t layers, Constructor m (TermStack t layers) - ) => Constructor m (Layer4 expr Type) + ) => Constructor m (Layer4 expr Ty) --- HERE IS A FUNNY BEHAVIOR: the commented line raises context reduction stack overflow -test_gr :: ( Constructor m (TermStack t layers), Inferable A layers m, Inferable B t m - , bind ~ Expr t layers --- ) => m (Expr t layers) - ) => m bind +-- HERE IS A FUNNY BEHAVIOR: the commented line raises context reduction stack +-- overflow +test_gr :: + ( Constructor m (TermStack t layers), Inferable A layers m, Inferable B t m + , bind ~ Expr t layers +-- ) => m (Expr t layers) + ) => m bind test_gr = undefined -- Explicit information about a type which could be inferred -class Monad m => Inferable (cls :: *) (t :: k) m | cls m -> t +class Monad m => Inferable (cls :: Type) (t :: k) m | cls m -> t -newtype KnownTypex (cls :: *) (t :: k) (m :: * -> *) (a :: *) = KnownTypex (IdentityT m a) deriving (Show, Functor, Monad, MonadIO, MonadFix, MonadTrans, Applicative, Alternative) +newtype KnownTyx (cls :: Type) (t :: k) (m :: Type -> Type) (a :: Type) = + KnownTyx (IdentityT m a) + deriving (Show, Functor, Monad, MonadIO, MonadFix, MonadTrans, + Applicative, Alternative) -instance {-# OVERLAPPABLE #-} (t ~ t', Monad m) => Inferable cls t (KnownTypex cls t' m) -instance {-# OVERLAPPABLE #-} (Inferable cls t n, MonadTrans m, Monad (m n)) => Inferable cls t (m n) +instance {-# OVERLAPPABLE #-} (t ~ t', Monad m) => + Inferable cls t (KnownTyx cls t' m) +instance {-# OVERLAPPABLE #-} (Inferable cls t n, MonadTrans m, Monad (m n)) => + Inferable cls t (m n) -runInferenceTx :: forall cls t m a. KnownTypex cls t m a -> m a +runInferenceTx :: forall cls t m a. KnownTyx cls t m a -> m a runInferenceTx = undefined @@ -86,7 +94,7 @@ runInferenceTx = undefined -- running it test_ghc_err :: (MonadIO m, MonadFix m) - => m (Expr Net '[Type]) + => m (Expr Net '[Ty]) test_ghc_err = runInferenceTx @B @Net - $ runInferenceTx @A @'[Type] + $ runInferenceTx @A @'[Ty] $ (test_gr) diff --git a/testsuite/tests/typecheck/should_compile/T12734a.hs b/testsuite/tests/typecheck/should_compile/T12734a.hs index 3add59e648..5f1da8b818 100644 --- a/testsuite/tests/typecheck/should_compile/T12734a.hs +++ b/testsuite/tests/typecheck/should_compile/T12734a.hs @@ -21,6 +21,7 @@ module T12734a where import Prelude +import Data.Kind import Control.Applicative import Control.Monad.Fix import Control.Monad.Trans.Identity @@ -31,12 +32,12 @@ import Control.Monad.IO.Class data A data B data Net -data Type +data Ty data Layer4 t l data TermStore -data Stack lrs (t :: * -> *) where +data Stack lrs (t :: Type -> Type) where SLayer :: t l -> Stack ls t -> Stack (l ': ls) t SNull :: Stack '[] t @@ -44,7 +45,7 @@ instance ( Con m (t l) , Con m (Stack ls t)) => Con m (Stack (l ': ls) t) instance Monad m => Con m (Stack '[] t) instance ( expr ~ Expr t lrs - , Con m (TStk t lrs)) => Con m (Layer4 expr Type) + , Con m (TStk t lrs)) => Con m (Layer4 expr Ty) newtype Expr t lrs = Expr (TStk t lrs) @@ -63,18 +64,18 @@ test_gr :: forall m t lrs bind. test_gr = undefined -newtype KT (cls :: *) (t :: k) (m :: * -> *) (a :: *) +newtype KT (cls :: Type) (t :: k) (m :: Type -> Type) (a :: Type) = KT (IdentityT m a) -test_ghc_err :: KT A '[Type] IO (Expr Net '[Type]) +test_ghc_err :: KT A '[Ty] IO (Expr Net '[Ty]) -test_ghc_err = test_gr @(KT A '[Type] IO) @_ @'[Type] @(Expr Net '[Type]) +test_ghc_err = test_gr @(KT A '[Ty] IO) @_ @'[Ty] @(Expr Net '[Ty]) {- Works! -test_ghc_err = test_gr @(KT A '[Type] IO) +test_ghc_err = test_gr @(KT A '[Ty] IO) @Net - @'[Type] - @(Expr Net '[Type]) + @'[Ty] + @(Expr Net '[Ty]) -} {- Some notes. See comment:10 on Trac #12734 @@ -82,22 +83,22 @@ test_ghc_err = test_gr @(KT A '[Type] IO) [W] Con m (TStk t lrs) [W] Inferable A lrs m [W] bind ~ Expr t lrs -[W] m bind ~ KT A '[Type] IO (Expr Net '[Type]) +[W] m bind ~ KT A '[Ty] IO (Expr Net '[Ty]) -==> m := KT A '[Type] IO - bind := Expr Net '[Type] +==> m := KT A '[Ty] IO + bind := Expr Net '[Ty] t := Net - lrs := '[Type] + lrs := '[Ty] [W] Con m (TStk t lrs) = Con m (Stack lrs (Layer4 bind)) --> inline lrs -[W] Con m (Stack '[Type] (Layer4 bind)) +[W] Con m (Stack '[Ty] (Layer4 bind)) --> instance [W] Con m (Stack '[] bind) --> Monad m + -[W] Con m (Layer4 bind Type) +[W] Con m (Layer4 bind Ty) --> [W] bind ~ Expr t0 lrs0 [W] Con m (TStk t0 lrs0) diff --git a/testsuite/tests/typecheck/should_compile/T12734a.stderr b/testsuite/tests/typecheck/should_compile/T12734a.stderr index 737659fa57..8d777c6616 100644 --- a/testsuite/tests/typecheck/should_compile/T12734a.stderr +++ b/testsuite/tests/typecheck/should_compile/T12734a.stderr @@ -1,9 +1,8 @@ -T12734a.hs:71:16: error: - • No instance for (Monad (KT A '[Type] IO)) +T12734a.hs:72:16: error: + • No instance for (Monad (KT A '[Ty] IO)) arising from a use of ‘test_gr’ • In the expression: - test_gr @(KT A '[Type] IO) @_ @'[Type] @(Expr Net '[Type]) + test_gr @(KT A '[Ty] IO) @_ @'[Ty] @(Expr Net '[Ty]) In an equation for ‘test_ghc_err’: - test_ghc_err - = test_gr @(KT A '[Type] IO) @_ @'[Type] @(Expr Net '[Type]) + test_ghc_err = test_gr @(KT A '[Ty] IO) @_ @'[Ty] @(Expr Net '[Ty]) diff --git a/testsuite/tests/typecheck/should_compile/T12785a.hs b/testsuite/tests/typecheck/should_compile/T12785a.hs index 1e4d6a1b64..3c3fa9aba5 100644 --- a/testsuite/tests/typecheck/should_compile/T12785a.hs +++ b/testsuite/tests/typecheck/should_compile/T12785a.hs @@ -1,5 +1,5 @@ {-# LANGUAGE RankNTypes #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} {-# LANGUAGE TypeFamilies #-} module T12785a where diff --git a/testsuite/tests/typecheck/should_compile/T12911.hs b/testsuite/tests/typecheck/should_compile/T12911.hs index 88c2125f2b..af3af3c5f3 100644 --- a/testsuite/tests/typecheck/should_compile/T12911.hs +++ b/testsuite/tests/typecheck/should_compile/T12911.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE ExplicitForAll, TypeInType, GADTSyntax, +{-# LANGUAGE ExplicitForAll, PolyKinds, GADTSyntax, ExistentialQuantification #-} module T12911 where diff --git a/testsuite/tests/typecheck/should_compile/T12919.hs b/testsuite/tests/typecheck/should_compile/T12919.hs index 1f77c1c8de..778abfa1e7 100644 --- a/testsuite/tests/typecheck/should_compile/T12919.hs +++ b/testsuite/tests/typecheck/should_compile/T12919.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType, TypeFamilies, GADTs, ConstraintKinds #-} +{-# LANGUAGE DataKinds, PolyKinds, TypeFamilies, GADTs, ConstraintKinds #-} module T12919 where diff --git a/testsuite/tests/typecheck/should_compile/T12987.hs b/testsuite/tests/typecheck/should_compile/T12987.hs index 0997985601..3341272df9 100644 --- a/testsuite/tests/typecheck/should_compile/T12987.hs +++ b/testsuite/tests/typecheck/should_compile/T12987.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} module T12987 where diff --git a/testsuite/tests/typecheck/should_compile/T13083.hs b/testsuite/tests/typecheck/should_compile/T13083.hs index 220da0855a..e294052309 100644 --- a/testsuite/tests/typecheck/should_compile/T13083.hs +++ b/testsuite/tests/typecheck/should_compile/T13083.hs @@ -8,11 +8,12 @@ module T13083 where +import Data.Kind import GHC.Generics (Par1(..),(:*:)(..)) import GHC.Exts (coerce) -- Representation as free vector space -type family V (a :: *) :: * -> * +type family V (a :: Type) :: Type -> Type type instance V R = Par1 type instance V (a,b) = V a :*: V b @@ -59,7 +60,7 @@ foo = coerce -- with that of ‘Par1’ -- arising from a use of ‘coerce’ --- Note that Par1 has the wrong kind (* -> *) for V Par1 +-- Note that Par1 has the wrong kind (Type -> Type) for V Par1 -- Same error: -- diff --git a/testsuite/tests/typecheck/should_compile/T13333.hs b/testsuite/tests/typecheck/should_compile/T13333.hs index fba64cede0..5aca099c3b 100644 --- a/testsuite/tests/typecheck/should_compile/T13333.hs +++ b/testsuite/tests/typecheck/should_compile/T13333.hs @@ -4,7 +4,7 @@ {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} {-# LANGUAGE TypeOperators #-} module T13333 where diff --git a/testsuite/tests/typecheck/should_compile/T13337.hs b/testsuite/tests/typecheck/should_compile/T13337.hs index 39808b4f13..3448d9448a 100644 --- a/testsuite/tests/typecheck/should_compile/T13337.hs +++ b/testsuite/tests/typecheck/should_compile/T13337.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType, ScopedTypeVariables, TypeOperators, GADTs #-} +{-# LANGUAGE PolyKinds, ScopedTypeVariables, TypeOperators, GADTs #-} {-# OPTIONS_GHC -Wno-overlapping-patterns #-} -- don't want erroneous warning in test output -- if removing this doesn't change output, then -- remove it! diff --git a/testsuite/tests/typecheck/should_compile/T13343.hs b/testsuite/tests/typecheck/should_compile/T13343.hs index a00655d5ef..fcff9db1a4 100644 --- a/testsuite/tests/typecheck/should_compile/T13343.hs +++ b/testsuite/tests/typecheck/should_compile/T13343.hs @@ -1,5 +1,5 @@ {-# LANGUAGE RankNTypes #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} module Bug where import GHC.Exts diff --git a/testsuite/tests/typecheck/should_compile/T13458.hs b/testsuite/tests/typecheck/should_compile/T13458.hs index 9b51378d65..ef1f568769 100644 --- a/testsuite/tests/typecheck/should_compile/T13458.hs +++ b/testsuite/tests/typecheck/should_compile/T13458.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE MagicHash, TypeInType, ScopedTypeVariables #-} +{-# LANGUAGE MagicHash, PolyKinds, ScopedTypeVariables #-} {-# OPTIONS_GHC -O #-} module T13458 where import GHC.Exts diff --git a/testsuite/tests/typecheck/should_compile/T13603.hs b/testsuite/tests/typecheck/should_compile/T13603.hs index d0c1975e04..bcbed465b0 100644 --- a/testsuite/tests/typecheck/should_compile/T13603.hs +++ b/testsuite/tests/typecheck/should_compile/T13603.hs @@ -1,4 +1,4 @@ -{-# Language PolyKinds, TypeInType, UndecidableInstances #-} +{-# Language PolyKinds, UndecidableInstances #-} module T13603 where import GHC.Exts (TYPE, RuntimeRep) diff --git a/testsuite/tests/typecheck/should_compile/T13643.hs b/testsuite/tests/typecheck/should_compile/T13643.hs index d7cf1342c8..68e7225bf8 100644 --- a/testsuite/tests/typecheck/should_compile/T13643.hs +++ b/testsuite/tests/typecheck/should_compile/T13643.hs @@ -2,7 +2,7 @@ {-# Language RankNTypes #-} {-# Language KindSignatures #-} {-# Language DataKinds #-} -{-# Language TypeInType #-} +{-# Language PolyKinds #-} {-# Language GADTs #-} import Data.Kind (Type) diff --git a/testsuite/tests/typecheck/should_compile/T13822.hs b/testsuite/tests/typecheck/should_compile/T13822.hs index 5837cc8081..88c14c2aff 100644 --- a/testsuite/tests/typecheck/should_compile/T13822.hs +++ b/testsuite/tests/typecheck/should_compile/T13822.hs @@ -1,4 +1,5 @@ -{-# LANGUAGE GADTs, TypeOperators, PolyKinds, DataKinds, TypeFamilyDependencies, TypeInType, RankNTypes, LambdaCase, EmptyCase #-} +{-# LANGUAGE GADTs, TypeOperators, PolyKinds, DataKinds, + TypeFamilyDependencies, RankNTypes, LambdaCase, EmptyCase #-} module T13822 where diff --git a/testsuite/tests/typecheck/should_compile/T13871.hs b/testsuite/tests/typecheck/should_compile/T13871.hs index 319d949647..623923eaca 100644 --- a/testsuite/tests/typecheck/should_compile/T13871.hs +++ b/testsuite/tests/typecheck/should_compile/T13871.hs @@ -1,7 +1,7 @@ {-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds #-} {-# LANGUAGE TypeOperators #-} module Foo where diff --git a/testsuite/tests/typecheck/should_compile/T13879.hs b/testsuite/tests/typecheck/should_compile/T13879.hs index 9708c1dd41..2e10c472fb 100644 --- a/testsuite/tests/typecheck/should_compile/T13879.hs +++ b/testsuite/tests/typecheck/should_compile/T13879.hs @@ -2,7 +2,7 @@ {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds #-} {-# LANGUAGE TypeOperators #-} module Bug where diff --git a/testsuite/tests/typecheck/should_compile/T13915a.hs b/testsuite/tests/typecheck/should_compile/T13915a.hs index 484c9dedc0..355166b8a0 100644 --- a/testsuite/tests/typecheck/should_compile/T13915a.hs +++ b/testsuite/tests/typecheck/should_compile/T13915a.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds #-} module Bug where import T13915a_Foo diff --git a/testsuite/tests/typecheck/should_compile/T13915b.hs b/testsuite/tests/typecheck/should_compile/T13915b.hs index dd64b13d4f..8949a86f06 100644 --- a/testsuite/tests/typecheck/should_compile/T13915b.hs +++ b/testsuite/tests/typecheck/should_compile/T13915b.hs @@ -1,5 +1,5 @@ {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds #-} module Foo where import Data.Typeable (Proxy(..), typeRep) diff --git a/testsuite/tests/typecheck/should_compile/T13943.hs b/testsuite/tests/typecheck/should_compile/T13943.hs index f40ee237e6..7889fe6a41 100644 --- a/testsuite/tests/typecheck/should_compile/T13943.hs +++ b/testsuite/tests/typecheck/should_compile/T13943.hs @@ -5,7 +5,7 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE TypeApplications #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds, DataKinds #-} {-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE GADTs #-} diff --git a/testsuite/tests/typecheck/should_compile/T14441.hs b/testsuite/tests/typecheck/should_compile/T14441.hs index 047de1659f..a2c1aff9ef 100644 --- a/testsuite/tests/typecheck/should_compile/T14441.hs +++ b/testsuite/tests/typecheck/should_compile/T14441.hs @@ -1,6 +1,7 @@ {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE PolyKinds #-} module T14441 where import Data.Kind diff --git a/testsuite/tests/typecheck/should_compile/T14934a.hs b/testsuite/tests/typecheck/should_compile/T14934a.hs index 3ba59ff976..3a4865fffc 100644 --- a/testsuite/tests/typecheck/should_compile/T14934a.hs +++ b/testsuite/tests/typecheck/should_compile/T14934a.hs @@ -4,9 +4,10 @@ {-# LANGUAGE TypeOperators #-} module T14934a where +import Data.Kind (Type) import GHC.TypeLits -data Foo :: Nat -> * where +data Foo :: Nat -> Type where MkFoo0 :: Foo 0 MkFoo1 :: Foo 1 diff --git a/testsuite/tests/typecheck/should_compile/all.T b/testsuite/tests/typecheck/should_compile/all.T index f566182cc2..8a7a7da8ce 100644 --- a/testsuite/tests/typecheck/should_compile/all.T +++ b/testsuite/tests/typecheck/should_compile/all.T @@ -579,8 +579,8 @@ test('T13848', normal, compile, ['']) test('T13871', normal, compile, ['']) test('T13879', normal, compile, ['']) test('T13881', normal, compile, ['']) -test('T13915a', normal, multimod_compile, ['T13915a', '-v0']) -test('T13915b', normal, compile, ['']) +test('T13915a', expect_broken(15245), multimod_compile, ['T13915a', '-v0']) +test('T13915b', expect_broken(15245), compile, ['']) test('T13984', normal, compile, ['']) test('T14128', normal, multimod_compile, ['T14128Main', '-v0']) test('T14149', normal, compile_fail, ['']) diff --git a/testsuite/tests/typecheck/should_compile/tc191.hs b/testsuite/tests/typecheck/should_compile/tc191.hs index 403ec88da9..c7a7c3e4c6 100644 --- a/testsuite/tests/typecheck/should_compile/tc191.hs +++ b/testsuite/tests/typecheck/should_compile/tc191.hs @@ -1,4 +1,4 @@ - +{-# LANGUAGE RankNTypes #-} -- This only typechecks if forall-hoisting works ok when -- importing from an interface file. The type of Twins.gzipWithQ diff --git a/testsuite/tests/typecheck/should_compile/tc205.hs b/testsuite/tests/typecheck/should_compile/tc205.hs index 1fe2cc255f..e45660fb3a 100644 --- a/testsuite/tests/typecheck/should_compile/tc205.hs +++ b/testsuite/tests/typecheck/should_compile/tc205.hs @@ -4,7 +4,9 @@ module ShouldCompile where +import Data.Kind + infix 1 `DArrowX` -- (->) has precedence 0 -data DArrowX :: * -> * -> * where +data DArrowX :: Type -> Type -> Type where First :: a `DArrowX` a' -> (a,b) `DArrowX` (a',b) diff --git a/testsuite/tests/typecheck/should_compile/tc269.hs b/testsuite/tests/typecheck/should_compile/tc269.hs index 33151cebe8..3ac88ce8e9 100644 --- a/testsuite/tests/typecheck/should_compile/tc269.hs +++ b/testsuite/tests/typecheck/should_compile/tc269.hs @@ -1,6 +1,5 @@ {-# LANGUAGE RankNTypes #-} -{-# LANGUAGE KindSignatures #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} module Tc269 where import GHC.Types diff --git a/testsuite/tests/typecheck/should_compile/valid_hole_fits_interactions.hs b/testsuite/tests/typecheck/should_compile/valid_hole_fits_interactions.hs index a2186e73a3..069e1f7384 100644 --- a/testsuite/tests/typecheck/should_compile/valid_hole_fits_interactions.hs +++ b/testsuite/tests/typecheck/should_compile/valid_hole_fits_interactions.hs @@ -1,5 +1,5 @@ {-# LANGUAGE GADTs #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds #-} {-# LANGUAGE TypeFamilies #-} module ValidSubsInteractions where diff --git a/testsuite/tests/typecheck/should_fail/ClassOperator.hs b/testsuite/tests/typecheck/should_fail/ClassOperator.hs index 6d41d113fb..922cbdb0f4 100644 --- a/testsuite/tests/typecheck/should_fail/ClassOperator.hs +++ b/testsuite/tests/typecheck/should_fail/ClassOperator.hs @@ -2,9 +2,11 @@ module ClassOperator where +import Data.Kind + -- | Class with fixity, including associated types class a ><> b where - type a <>< b :: * + type a <>< b :: Type data a ><< b (>><), (<<>) :: a -> b -> () diff --git a/testsuite/tests/typecheck/should_fail/ClassOperator.stderr b/testsuite/tests/typecheck/should_fail/ClassOperator.stderr index bc4eb7c598..78017f22ba 100644 --- a/testsuite/tests/typecheck/should_fail/ClassOperator.stderr +++ b/testsuite/tests/typecheck/should_fail/ClassOperator.stderr @@ -1,10 +1,10 @@ -ClassOperator.hs:12:3: error: +ClassOperator.hs:14:3: error: • Could not deduce (a ><> b0) from the context: a ><> b bound by the type signature for: (**>) :: forall a b. (a ><> b) => a -> a -> () - at ClassOperator.hs:12:3-44 + at ClassOperator.hs:14:3-44 The type variable ‘b0’ is ambiguous • In the ambiguity check for ‘**>’ To defer the ambiguity check to use sites, enable AllowAmbiguousTypes @@ -12,12 +12,12 @@ ClassOperator.hs:12:3: error: (**>) :: forall a b. (a ><> b) => a -> a -> () In the class declaration for ‘><>’ -ClassOperator.hs:12:3: error: +ClassOperator.hs:14:3: error: • Could not deduce (a ><> b0) from the context: a ><> b bound by the type signature for: (**<) :: forall a b. (a ><> b) => a -> a -> () - at ClassOperator.hs:12:3-44 + at ClassOperator.hs:14:3-44 The type variable ‘b0’ is ambiguous • In the ambiguity check for ‘**<’ To defer the ambiguity check to use sites, enable AllowAmbiguousTypes @@ -25,12 +25,12 @@ ClassOperator.hs:12:3: error: (**<) :: forall a b. (a ><> b) => a -> a -> () In the class declaration for ‘><>’ -ClassOperator.hs:12:3: error: +ClassOperator.hs:14:3: error: • Could not deduce (a ><> b0) from the context: a ><> b bound by the type signature for: (>**) :: forall a b. (a ><> b) => a -> a -> () - at ClassOperator.hs:12:3-44 + at ClassOperator.hs:14:3-44 The type variable ‘b0’ is ambiguous • In the ambiguity check for ‘>**’ To defer the ambiguity check to use sites, enable AllowAmbiguousTypes @@ -38,12 +38,12 @@ ClassOperator.hs:12:3: error: (>**) :: forall a b. (a ><> b) => a -> a -> () In the class declaration for ‘><>’ -ClassOperator.hs:12:3: error: +ClassOperator.hs:14:3: error: • Could not deduce (a ><> b0) from the context: a ><> b bound by the type signature for: (<**) :: forall a b. (a ><> b) => a -> a -> () - at ClassOperator.hs:12:3-44 + at ClassOperator.hs:14:3-44 The type variable ‘b0’ is ambiguous • In the ambiguity check for ‘<**’ To defer the ambiguity check to use sites, enable AllowAmbiguousTypes diff --git a/testsuite/tests/typecheck/should_fail/CustomTypeErrors04.hs b/testsuite/tests/typecheck/should_fail/CustomTypeErrors04.hs index d1957bf34b..298668f213 100644 --- a/testsuite/tests/typecheck/should_fail/CustomTypeErrors04.hs +++ b/testsuite/tests/typecheck/should_fail/CustomTypeErrors04.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType, TypeFamilies, UndecidableInstances #-} +{-# LANGUAGE DataKinds, TypeFamilies, UndecidableInstances #-} {-# LANGUAGE UndecidableInstances #-} -- The "bad case" in #11391 diff --git a/testsuite/tests/typecheck/should_fail/CustomTypeErrors05.hs b/testsuite/tests/typecheck/should_fail/CustomTypeErrors05.hs index 5a15b6f363..7d200faef6 100644 --- a/testsuite/tests/typecheck/should_fail/CustomTypeErrors05.hs +++ b/testsuite/tests/typecheck/should_fail/CustomTypeErrors05.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType, TypeFamilies, UndecidableInstances #-} +{-# LANGUAGE DataKinds, TypeFamilies, UndecidableInstances #-} {-# LANGUAGE UndecidableInstances #-} -- The "tricky case" in #11391 diff --git a/testsuite/tests/typecheck/should_fail/LevPolyBounded.hs b/testsuite/tests/typecheck/should_fail/LevPolyBounded.hs index 0607956784..0a68a69a38 100644 --- a/testsuite/tests/typecheck/should_fail/LevPolyBounded.hs +++ b/testsuite/tests/typecheck/should_fail/LevPolyBounded.hs @@ -1,6 +1,6 @@ -- inspired by comment:25 on #12708 -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} module LevPolyBounded where diff --git a/testsuite/tests/typecheck/should_fail/T11313.hs b/testsuite/tests/typecheck/should_fail/T11313.hs index 86ac9582b8..68aa5b0f6c 100644 --- a/testsuite/tests/typecheck/should_fail/T11313.hs +++ b/testsuite/tests/typecheck/should_fail/T11313.hs @@ -2,8 +2,6 @@ module T11313 where -import Data.Kind - x = fmap @ (*) -- test error message output, which was quite silly before diff --git a/testsuite/tests/typecheck/should_fail/T11313.stderr b/testsuite/tests/typecheck/should_fail/T11313.stderr index 7a681d17aa..8697d3b6c7 100644 --- a/testsuite/tests/typecheck/should_fail/T11313.stderr +++ b/testsuite/tests/typecheck/should_fail/T11313.stderr @@ -1,6 +1,6 @@ -T11313.hs:7:12: error: +T11313.hs:5:13: error: • Expected kind ‘* -> *’, but ‘*’ has kind ‘*’ - • In the type ‘*’ - In the expression: fmap @* - In an equation for ‘x’: x = fmap @* + • In the type ‘(*)’ + In the expression: fmap @(*) + In an equation for ‘x’: x = fmap @(*) diff --git a/testsuite/tests/typecheck/should_fail/T11724.hs b/testsuite/tests/typecheck/should_fail/T11724.hs index df575bd9b5..23412e9df9 100644 --- a/testsuite/tests/typecheck/should_fail/T11724.hs +++ b/testsuite/tests/typecheck/should_fail/T11724.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} module T11724 where diff --git a/testsuite/tests/typecheck/should_fail/T11963.hs b/testsuite/tests/typecheck/should_fail/T11963.hs deleted file mode 100644 index c4f78aee29..0000000000 --- a/testsuite/tests/typecheck/should_fail/T11963.hs +++ /dev/null @@ -1,29 +0,0 @@ -{-# LANGUAGE GADTs, PolyKinds, RankNTypes #-} - -module T11963 where - --- this module should be rejected without TypeInType - -import Data.Proxy - --- see code in RnTypes.extract_hs_tv_bndrs which checks for these bad cases - - -- bndr_kvs vs body_tvs -data Typ k t where - Typ :: (forall (a :: k -> *). a t -> a t) -> Typ k t - - -- bndr_kvs vs acc_tvs -foo :: (forall (t :: k). Proxy t) -> Proxy k -foo _ = undefined - - -- locals vs body_kvs -bar :: forall k. forall (t :: k). Proxy t -bar = undefined - - -- body_kvs vs acc_tvs -quux :: (forall t. Proxy (t :: k)) -> Proxy k -quux _ = undefined - - -- body_tvs vs acc_kvs -blargh :: (forall a. a -> Proxy k) -> Proxy (t :: k) -blargh _ = undefined diff --git a/testsuite/tests/typecheck/should_fail/T11963.stderr b/testsuite/tests/typecheck/should_fail/T11963.stderr deleted file mode 100644 index bd1ae4dc76..0000000000 --- a/testsuite/tests/typecheck/should_fail/T11963.stderr +++ /dev/null @@ -1,20 +0,0 @@ - -T11963.hs:13:26: error: - Variable ‘k’ used as both a kind and a type - Did you intend to use TypeInType? - -T11963.hs:16:22: error: - Variable ‘k’ used as both a kind and a type - Did you intend to use TypeInType? - -T11963.hs:20:31: error: - Variable ‘k’ used as both a kind and a type - Did you intend to use TypeInType? - -T11963.hs:24:32: error: - Variable ‘k’ used as both a kind and a type - Did you intend to use TypeInType? - -T11963.hs:28:51: error: - Variable ‘k’ used as both a kind and a type - Did you intend to use TypeInType? diff --git a/testsuite/tests/typecheck/should_fail/T12648.hs b/testsuite/tests/typecheck/should_fail/T12648.hs index b36ecce3bc..b75bcf9226 100644 --- a/testsuite/tests/typecheck/should_fail/T12648.hs +++ b/testsuite/tests/typecheck/should_fail/T12648.hs @@ -13,7 +13,7 @@ {-# LANGUAGE UndecidableSuperClasses #-} module T12648 where -import GHC.Exts (Constraint) +import Data.Kind (Type, Constraint) import Unsafe.Coerce (unsafeCoerce) type family Skolem (p :: k -> Constraint) :: k @@ -25,7 +25,7 @@ instance p (Skolem p) => Forall_ (p :: k -> Constraint) inst :: forall p a. Forall p :- p a inst = unsafeCoerce (Sub Dict :: Forall p :- p (Skolem p)) -data Dict :: Constraint -> * where +data Dict :: Constraint -> Type where Dict :: a => Dict a newtype a :- b = Sub (a => Dict b) @@ -40,7 +40,7 @@ class (Applicative b, Applicative m, Monad b, Monad m) => MonadBase b m | m -> b instance MonadBase IO IO -- where liftBase = id class MonadBase b m => MonadBaseControl b m | m -> b where - type StM m a :: * + type StM m a :: Type liftBaseWith :: (RunInBase m b -> b a) -> m a type RunInBase m b = forall a. m a -> b (StM m a) diff --git a/testsuite/tests/typecheck/should_fail/T12709.hs b/testsuite/tests/typecheck/should_fail/T12709.hs index 2bbcf744d0..6a7e37a5d2 100644 --- a/testsuite/tests/typecheck/should_fail/T12709.hs +++ b/testsuite/tests/typecheck/should_fail/T12709.hs @@ -1,4 +1,5 @@ -{-# Language MagicHash, PolyKinds, ViewPatterns, TypeInType, RebindableSyntax, NoImplicitPrelude #-} +{-# Language PolyKinds, ViewPatterns, RebindableSyntax, + MagicHash, NoImplicitPrelude #-} module T12709 where diff --git a/testsuite/tests/typecheck/should_fail/T12709.stderr b/testsuite/tests/typecheck/should_fail/T12709.stderr index 7be861c061..9d79d8dd0c 100644 --- a/testsuite/tests/typecheck/should_fail/T12709.stderr +++ b/testsuite/tests/typecheck/should_fail/T12709.stderr @@ -1,23 +1,23 @@ -T12709.hs:27:13: error: +T12709.hs:28:13: error: A levity-polymorphic type is not allowed here: Type: a Kind: TYPE rep In the type of expression: 1 -T12709.hs:27:17: error: +T12709.hs:28:17: error: A levity-polymorphic type is not allowed here: Type: a Kind: TYPE rep In the type of expression: 2 -T12709.hs:27:21: error: +T12709.hs:28:21: error: A levity-polymorphic type is not allowed here: Type: a Kind: TYPE rep In the type of expression: 3 -T12709.hs:27:25: error: +T12709.hs:28:25: error: A levity-polymorphic type is not allowed here: Type: a Kind: TYPE rep diff --git a/testsuite/tests/typecheck/should_fail/T12785b.hs b/testsuite/tests/typecheck/should_fail/T12785b.hs index 4188e3e67c..b827372bf0 100644 --- a/testsuite/tests/typecheck/should_fail/T12785b.hs +++ b/testsuite/tests/typecheck/should_fail/T12785b.hs @@ -1,6 +1,6 @@ -{-# LANGUAGE RankNTypes, TypeInType, TypeOperators, KindSignatures, ViewPatterns #-} +{-# LANGUAGE RankNTypes, TypeOperators, ViewPatterns #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE DataKinds, GADTs #-} +{-# LANGUAGE DataKinds, PolyKinds, GADTs #-} module T12785b where @@ -13,14 +13,14 @@ data HTree n a where Leaf :: HTree (S n) a Branch :: a -> HTree n (HTree (S n) a) -> HTree (S n) a -data STree n :: forall a . (a -> *) -> HTree n a -> * where +data STree n :: forall a . (a -> Type) -> HTree n a -> Type where SPoint :: f a -> STree Z f (Point a) SLeaf :: STree (S n) f Leaf SBranch :: f a -> STree n (STree (S n) f) stru -> STree (S n) f (a `Branch` stru) SBranchX :: (Payload (S n) (Payload n stru) ~ a) => f a -> STree n (STree (S n) f) stru -> STree (S n) f (a `Branch` stru) -data Hidden :: Peano -> (a -> *) -> * where +data Hidden :: Peano -> (a -> Type) -> Type where Hide :: STree n f s -> Hidden n f nest :: HTree m (Hidden (S m) f) -> Hidden m (STree ('S m) f) diff --git a/testsuite/tests/typecheck/should_fail/T12973.hs b/testsuite/tests/typecheck/should_fail/T12973.hs index 624d24be24..b0a33a8213 100644 --- a/testsuite/tests/typecheck/should_fail/T12973.hs +++ b/testsuite/tests/typecheck/should_fail/T12973.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE RebindableSyntax, TypeInType, ExplicitForAll #-} +{-# LANGUAGE RebindableSyntax, PolyKinds, ExplicitForAll #-} module T12973 where diff --git a/testsuite/tests/typecheck/should_fail/T13105.hs b/testsuite/tests/typecheck/should_fail/T13105.hs index 44384dc19d..b2b23c7442 100644 --- a/testsuite/tests/typecheck/should_fail/T13105.hs +++ b/testsuite/tests/typecheck/should_fail/T13105.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE UnicodeSyntax, MagicHash, TypeInType, TypeFamilies #-} +{-# LANGUAGE UnicodeSyntax, MagicHash, DataKinds, PolyKinds, TypeFamilies #-} -- from Conal Elliott -- Actually, this *should* work. But I want to put it in the testsuite diff --git a/testsuite/tests/typecheck/should_fail/T13446.hs b/testsuite/tests/typecheck/should_fail/T13446.hs index 11a60776f6..b5bd77fcb0 100644 --- a/testsuite/tests/typecheck/should_fail/T13446.hs +++ b/testsuite/tests/typecheck/should_fail/T13446.hs @@ -11,10 +11,10 @@ module T13446 where import Data.Coerce (Coercible) -import GHC.Exts (Constraint) +import Data.Kind (Type, Constraint) import GHC.TypeLits (Symbol) -data Dict :: Constraint -> * where +data Dict :: Constraint -> Type where Dict :: a => Dict a infixr 9 :- diff --git a/testsuite/tests/typecheck/should_fail/T13909.hs b/testsuite/tests/typecheck/should_fail/T13909.hs index 4f0cbdc8b1..58798d5f79 100644 --- a/testsuite/tests/typecheck/should_fail/T13909.hs +++ b/testsuite/tests/typecheck/should_fail/T13909.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} module T13909 where import Data.Kind diff --git a/testsuite/tests/typecheck/should_fail/T13929.hs b/testsuite/tests/typecheck/should_fail/T13929.hs index 10a7430eee..f0801e8e0e 100644 --- a/testsuite/tests/typecheck/should_fail/T13929.hs +++ b/testsuite/tests/typecheck/should_fail/T13929.hs @@ -1,6 +1,6 @@ {-# LANGUAGE MagicHash #-} {-# LANGUAGE DataKinds #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE DeriveGeneric #-} diff --git a/testsuite/tests/typecheck/should_fail/T13983.stderr b/testsuite/tests/typecheck/should_fail/T13983.stderr index 65ce607961..5c7a031654 100644 --- a/testsuite/tests/typecheck/should_fail/T13983.stderr +++ b/testsuite/tests/typecheck/should_fail/T13983.stderr @@ -3,6 +3,6 @@ T13983.hs:7:1: error: • Kind variable ‘k’ is implicitly bound in type synonym ‘Wat’, but does not appear as the kind of any of its type variables. Perhaps you meant - to bind it (with TypeInType) explicitly somewhere? + to bind it explicitly somewhere? Type variables with inferred kinds: (k :: *) • In the type declaration for ‘Wat’ diff --git a/testsuite/tests/typecheck/should_fail/T14350.hs b/testsuite/tests/typecheck/should_fail/T14350.hs index b3de40f647..9d96e4570e 100644 --- a/testsuite/tests/typecheck/should_fail/T14350.hs +++ b/testsuite/tests/typecheck/should_fail/T14350.hs @@ -5,7 +5,7 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds, DataKinds #-} {-# LANGUAGE TypeOperators #-} module T14350 where diff --git a/testsuite/tests/typecheck/should_fail/T14904a.hs b/testsuite/tests/typecheck/should_fail/T14904a.hs index 654f5a6618..af4cf65a33 100644 --- a/testsuite/tests/typecheck/should_fail/T14904a.hs +++ b/testsuite/tests/typecheck/should_fail/T14904a.hs @@ -1,6 +1,6 @@ {-# LANGUAGE RankNTypes #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} module T14904a where import Data.Kind diff --git a/testsuite/tests/typecheck/should_fail/T14904b.hs b/testsuite/tests/typecheck/should_fail/T14904b.hs index d8cfa1ea07..529b273245 100644 --- a/testsuite/tests/typecheck/should_fail/T14904b.hs +++ b/testsuite/tests/typecheck/should_fail/T14904b.hs @@ -1,6 +1,6 @@ {-# LANGUAGE RankNTypes #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} module T14904b where import Data.Kind diff --git a/testsuite/tests/typecheck/should_fail/T7645.hs b/testsuite/tests/typecheck/should_fail/T7645.hs index db086c8e61..b7a2af4ebd 100644 --- a/testsuite/tests/typecheck/should_fail/T7645.hs +++ b/testsuite/tests/typecheck/should_fail/T7645.hs @@ -1,8 +1,10 @@ {-# LANGUAGE TypeOperators, KindSignatures #-} module T7645 where +import Data.Kind + data (+) a b = P -f :: ((+) a (a :: *), Maybe) +f :: ((+) a (a :: Type), Maybe) f = undefined diff --git a/testsuite/tests/typecheck/should_fail/T7645.stderr b/testsuite/tests/typecheck/should_fail/T7645.stderr index 1b3fe0ad76..24330b2aeb 100644 --- a/testsuite/tests/typecheck/should_fail/T7645.stderr +++ b/testsuite/tests/typecheck/should_fail/T7645.stderr @@ -1,6 +1,5 @@ -T7645.hs:6:23: error: +T7645.hs:8:26: error: • Expecting one more argument to ‘Maybe’ Expected a type, but ‘Maybe’ has kind ‘* -> *’ - • In the type signature: - f :: ((+) a (a :: *), Maybe) + • In the type signature: f :: ((+) a (a :: Type), Maybe) diff --git a/testsuite/tests/typecheck/should_fail/all.T b/testsuite/tests/typecheck/should_fail/all.T index 3a7f2c415b..6a0012700f 100644 --- a/testsuite/tests/typecheck/should_fail/all.T +++ b/testsuite/tests/typecheck/should_fail/all.T @@ -453,7 +453,6 @@ test('T13610', normal, compile_fail, ['']) test('T11672', normal, compile_fail, ['']) test('T13819', normal, compile_fail, ['']) test('T13902', normal, compile_fail, ['']) -test('T11963', normal, compile_fail, ['']) test('T14000', normal, compile_fail, ['']) test('T14055', normal, compile_fail, ['']) test('T13909', normal, compile_fail, ['']) diff --git a/testsuite/tests/typecheck/should_run/EtaExpandLevPoly.hs b/testsuite/tests/typecheck/should_run/EtaExpandLevPoly.hs index e912411209..d57d2e1499 100644 --- a/testsuite/tests/typecheck/should_run/EtaExpandLevPoly.hs +++ b/testsuite/tests/typecheck/should_run/EtaExpandLevPoly.hs @@ -1,5 +1,5 @@ -{-# LANGUAGE UnboxedTuples, MagicHash, GADTs, TypeInType, ExplicitForAll #-} - +{-# LANGUAGE UnboxedTuples, MagicHash, GADTs, + DataKinds, PolyKinds, ExplicitForAll #-} module Main where diff --git a/testsuite/tests/typecheck/should_run/KindInvariant.script b/testsuite/tests/typecheck/should_run/KindInvariant.script index a993d515c5..34f6be361e 100644 --- a/testsuite/tests/typecheck/should_run/KindInvariant.script +++ b/testsuite/tests/typecheck/should_run/KindInvariant.script @@ -1,12 +1,12 @@ -:set -XTypeInType -XDataKinds -XKindSignatures -XMagicHash -XPolyKinds +:set -XDataKinds -XKindSignatures -XMagicHash -XPolyKinds :m + Data.Kind GHC.Exts data T (a :: k -> k') :kind T State# -data T (a :: * -> k') +data T (a :: Type -> k') :kind T State# -- this should fail -data T (a :: * -> *) +data T (a :: Type -> Type) :kind T State# diff --git a/testsuite/tests/typecheck/should_run/T11120.hs b/testsuite/tests/typecheck/should_run/T11120.hs index f42e8cd5c0..5b5d7f343c 100644 --- a/testsuite/tests/typecheck/should_run/T11120.hs +++ b/testsuite/tests/typecheck/should_run/T11120.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType, MagicHash, DataKinds #-} +{-# LANGUAGE MagicHash, DataKinds #-} -- See also TypeOf.hs import GHC.Prim diff --git a/testsuite/tests/typecheck/should_run/T12809.hs b/testsuite/tests/typecheck/should_run/T12809.hs index 9f6da26d76..66031a5af7 100644 --- a/testsuite/tests/typecheck/should_run/T12809.hs +++ b/testsuite/tests/typecheck/should_run/T12809.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType, ExplicitForAll, MagicHash, UnboxedTuples, +{-# LANGUAGE DataKinds, PolyKinds, ExplicitForAll, MagicHash, UnboxedTuples, TypeFamilies, GADTs #-} module Main where diff --git a/testsuite/tests/typecheck/should_run/T13435.hs b/testsuite/tests/typecheck/should_run/T13435.hs index 95ee946fa0..bc02f17b4c 100644 --- a/testsuite/tests/typecheck/should_run/T13435.hs +++ b/testsuite/tests/typecheck/should_run/T13435.hs @@ -1,4 +1,5 @@ -{-# Language FlexibleInstances, TypeFamilies, TypeInType, MagicHash #-} +{-# Language FlexibleInstances, TypeFamilies, + DataKinds, PolyKinds, MagicHash #-} module Main where diff --git a/testsuite/tests/typecheck/should_run/TypeOf.hs b/testsuite/tests/typecheck/should_run/TypeOf.hs index 59ea6fdf0d..11601a9a89 100644 --- a/testsuite/tests/typecheck/should_run/TypeOf.hs +++ b/testsuite/tests/typecheck/should_run/TypeOf.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE DataKinds #-} +{-# LANGUAGE DataKinds, UnicodeSyntax #-} import Data.Typeable import GHC.Types diff --git a/testsuite/tests/typecheck/should_run/TypeRep.hs b/testsuite/tests/typecheck/should_run/TypeRep.hs index 002e4fbac0..43d774a6b5 100644 --- a/testsuite/tests/typecheck/should_run/TypeRep.hs +++ b/testsuite/tests/typecheck/should_run/TypeRep.hs @@ -1,13 +1,15 @@ {-# LANGUAGE DataKinds #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE ConstraintKinds #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} {-# LANGUAGE UnboxedTuples #-} {-# LANGUAGE MagicHash #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE TypeOperators #-} +{-# LANGUAGE StarIsType #-} +{-# LANGUAGE UnicodeSyntax #-} import Data.Typeable import Data.Kind diff --git a/testsuite/tests/unboxedsums/sum_rr.hs b/testsuite/tests/unboxedsums/sum_rr.hs index 5f799fe481..448a9b2221 100644 --- a/testsuite/tests/unboxedsums/sum_rr.hs +++ b/testsuite/tests/unboxedsums/sum_rr.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds, PolyKinds #-} module Example where |