diff options
Diffstat (limited to 'testsuite/tests/gadt')
-rw-r--r-- | testsuite/tests/gadt/Gadt23_AST.hs | 4 | ||||
-rw-r--r-- | testsuite/tests/gadt/Session.hs | 4 | ||||
-rw-r--r-- | testsuite/tests/gadt/T14320.hs | 8 | ||||
-rw-r--r-- | testsuite/tests/gadt/T9380.hs | 7 | ||||
-rw-r--r-- | testsuite/tests/gadt/gadt20.hs | 6 | ||||
-rw-r--r-- | testsuite/tests/gadt/gadt22.hs | 3 | ||||
-rw-r--r-- | testsuite/tests/gadt/gadt8.hs | 4 | ||||
-rw-r--r-- | testsuite/tests/gadt/josef.hs | 4 | ||||
-rw-r--r-- | testsuite/tests/gadt/karl1.hs | 4 | ||||
-rw-r--r-- | testsuite/tests/gadt/karl2.hs | 6 |
10 files changed, 34 insertions, 16 deletions
diff --git a/testsuite/tests/gadt/Gadt23_AST.hs b/testsuite/tests/gadt/Gadt23_AST.hs index 75b07c7611..f1014a6a88 100644 --- a/testsuite/tests/gadt/Gadt23_AST.hs +++ b/testsuite/tests/gadt/Gadt23_AST.hs @@ -2,9 +2,11 @@ module Gadt23_AST where +import Data.Kind (Type) + data Exp_; -data AST :: * -> * -> * where +data AST :: Type -> Type -> Type where Var :: String -> AST Exp_ tag Tag :: tag -> AST a tag -> AST a tag diff --git a/testsuite/tests/gadt/Session.hs b/testsuite/tests/gadt/Session.hs index 4403b6f869..2a9b3da6ef 100644 --- a/testsuite/tests/gadt/Session.hs +++ b/testsuite/tests/gadt/Session.hs @@ -4,6 +4,8 @@ module Main where +import Data.Kind (Type) + data Zero = Zero deriving (Show) @@ -16,7 +18,7 @@ class TyNum a where instance TyNum Zero where instance (TyNum p) => TyNum (Succ p) where -data List :: * -> * -> * where +data List :: Type -> Type -> Type where Nil :: List a Zero Cons :: (TyNum p) => a -> List a p -> List a (Succ p) diff --git a/testsuite/tests/gadt/T14320.hs b/testsuite/tests/gadt/T14320.hs index 4acd4c8f63..77c68ee92e 100644 --- a/testsuite/tests/gadt/T14320.hs +++ b/testsuite/tests/gadt/T14320.hs @@ -2,14 +2,16 @@ module T14320 where -data Exp :: * where +import Data.Kind (Type) + +data Exp :: Type where Lit :: (Int -> Exp) -newtype TypedExp :: * -> * where +newtype TypedExp :: Type -> Type where TEGood :: forall a . (Exp -> (TypedExp a)) -- The only difference here is that the type is wrapped in parentheses, -- but GHC 8.0.1 rejects this program -- -newtype TypedExpToo :: * -> * where +newtype TypedExpToo :: Type -> Type where TEBad :: (forall a . (Exp -> (TypedExpToo a))) diff --git a/testsuite/tests/gadt/T9380.hs b/testsuite/tests/gadt/T9380.hs index 99dfab8477..9a2d0f7354 100644 --- a/testsuite/tests/gadt/T9380.hs +++ b/testsuite/tests/gadt/T9380.hs @@ -4,6 +4,7 @@ {-# LANGUAGE GADTs #-} module Main where +import Data.Kind (Type) import Foreign import Unsafe.Coerce @@ -13,11 +14,11 @@ newtype S (a :: M) = S Int data SomeS = forall a . SomeS (S a) -data V0 :: M -> * where +data V0 :: M -> Type where V0A :: Int -> V0 A V0B :: Double -> V0 B -data V1 :: M -> * where +data V1 :: M -> Type where V1A :: Int -> V1 A V1B :: Double -> V1 B V1a :: () -> V1 a @@ -65,4 +66,4 @@ test2 = main = do test0 -- no output at all test1 -- A - test2 -- O_o
\ No newline at end of file + test2 -- O_o diff --git a/testsuite/tests/gadt/gadt20.hs b/testsuite/tests/gadt/gadt20.hs index c754831ce5..f2f4503c31 100644 --- a/testsuite/tests/gadt/gadt20.hs +++ b/testsuite/tests/gadt/gadt20.hs @@ -6,10 +6,12 @@ module Foo where -data Pair :: (* -> *) -> * where +import Data.Kind (Type) + +data Pair :: (Type -> Type) -> Type where Pair :: a b -> b -> Pair a -data Sel :: * -> * where +data Sel :: Type -> Type where A :: Sel Bool B :: Sel Integer diff --git a/testsuite/tests/gadt/gadt22.hs b/testsuite/tests/gadt/gadt22.hs index 67d17c7a67..2bd6b74e44 100644 --- a/testsuite/tests/gadt/gadt22.hs +++ b/testsuite/tests/gadt/gadt22.hs @@ -8,6 +8,7 @@ module Expr where +import qualified Data.Kind as K (Type) import Data.Set (Set) data Type a where @@ -15,7 +16,7 @@ data Type a where TypeSet :: Ord a => Type a -> Type (Set a) TypeFun :: Type a -> Type b -> Type (a -> b) -data Expr :: * -> * where +data Expr :: K.Type -> K.Type where Const :: Type a -> a -> Expr a data DynExpr = forall a. DynExpr (Expr a) diff --git a/testsuite/tests/gadt/gadt8.hs b/testsuite/tests/gadt/gadt8.hs index ebd8b04c49..ba5ecaa603 100644 --- a/testsuite/tests/gadt/gadt8.hs +++ b/testsuite/tests/gadt/gadt8.hs @@ -6,7 +6,9 @@ -- kind signatures module ShouldCompile where -data Expr :: * -> * where { +import Data.Kind (Type) + +data Expr :: Type -> Type where { EInt :: Int -> Expr Int ; EBool :: Bool -> Expr Bool ; EIf :: (Expr Bool) -> (Expr a) -> (Expr a) -> Expr a ; diff --git a/testsuite/tests/gadt/josef.hs b/testsuite/tests/gadt/josef.hs index 34bd41ba3f..818a6dd20d 100644 --- a/testsuite/tests/gadt/josef.hs +++ b/testsuite/tests/gadt/josef.hs @@ -18,6 +18,8 @@ module Bug where +import Data.Kind (Type) + class Category arr where idA :: arr a a comp :: arr a b -> arr b c -> arr a c @@ -51,7 +53,7 @@ data V prod env t where Z :: V prod (prod env t) t S :: V prod env t -> V prod (prod env x) t -data Lambda terminal (exp :: * -> * -> *) prod env t where +data Lambda terminal (exp :: Type -> Type -> Type) prod env t where Unit :: Lambda foo exp prod env foo Var :: V prod env t -> Lambda terminal exp prod env t {- Lam :: Lambda terminal exp prod (prod env a) t diff --git a/testsuite/tests/gadt/karl1.hs b/testsuite/tests/gadt/karl1.hs index b671db7cd3..e201a711f6 100644 --- a/testsuite/tests/gadt/karl1.hs +++ b/testsuite/tests/gadt/karl1.hs @@ -6,7 +6,9 @@ module Expr1 where -data Expr :: * -> * where -- Not a GADT at all +import Data.Kind (Type) + +data Expr :: Type -> Type where -- Not a GADT at all Const :: Show a => a -> Expr a -- Note the Show constraint here Var :: Var a -> Expr a diff --git a/testsuite/tests/gadt/karl2.hs b/testsuite/tests/gadt/karl2.hs index aa96d689d7..1f46df37ee 100644 --- a/testsuite/tests/gadt/karl2.hs +++ b/testsuite/tests/gadt/karl2.hs @@ -5,11 +5,13 @@ module Expr0 where -- See Trac #301 -- This one *does* use GADTs (Fct) -data Expr :: * -> * where +import Data.Kind (Type) + +data Expr :: Type -> Type where Const :: Show a => a -> Expr a Apply :: Fct a b -> Expr a -> Expr b -data Fct :: * -> * -> * where +data Fct :: Type -> Type -> Type where Succ :: Fct Int Int EqZero :: Fct Int Bool Add :: Fct Int (Int -> Int) |