diff options
Diffstat (limited to 'testsuite/tests')
157 files changed, 914 insertions, 781 deletions
diff --git a/testsuite/tests/ghc-regress/annotations/should_fail/annfail07.stderr b/testsuite/tests/ghc-regress/annotations/should_fail/annfail07.stderr index 344fe50436..01f4b62c45 100644 --- a/testsuite/tests/ghc-regress/annotations/should_fail/annfail07.stderr +++ b/testsuite/tests/ghc-regress/annotations/should_fail/annfail07.stderr @@ -1,6 +1,6 @@ annfail07.hs:9:17: - Couldn't match expected type `[a]' with actual type `Bool' + Couldn't match expected type `[a0]' with actual type `Bool' In the first argument of `head', namely `True' In the expression: (head True) In the annotation: {-# ANN f (head True) #-} diff --git a/testsuite/tests/ghc-regress/annotations/should_fail/annfail08.stderr b/testsuite/tests/ghc-regress/annotations/should_fail/annfail08.stderr index 4507041dbe..e8b14d1f8a 100644 --- a/testsuite/tests/ghc-regress/annotations/should_fail/annfail08.stderr +++ b/testsuite/tests/ghc-regress/annotations/should_fail/annfail08.stderr @@ -1,15 +1,16 @@ annfail08.hs:9:1: - No instance for (Data.Data.Data (a -> a)) + No instance for (Data.Data.Data (a0 -> a0)) arising from an annotation Possible fix: - add an instance declaration for (Data.Data.Data (a -> a)) + add an instance declaration for (Data.Data.Data (a0 -> a0)) In the expression: (id + 1) In the annotation: {-# ANN f (id + 1) #-} -annfail08.hs:9:15: - No instance for (Num (a -> a)) - arising from a use of `+' - Possible fix: add an instance declaration for (Num (a -> a)) +annfail08.hs:9:17: + No instance for (Num (a0 -> a0)) + arising from the literal `1' + Possible fix: add an instance declaration for (Num (a0 -> a0)) + In the second argument of `(+)', namely `1' In the expression: (id + 1) In the annotation: {-# ANN f (id + 1) #-} diff --git a/testsuite/tests/ghc-regress/annotations/should_fail/annfail10.stderr b/testsuite/tests/ghc-regress/annotations/should_fail/annfail10.stderr index 86cd618c72..f44ad077e6 100644 --- a/testsuite/tests/ghc-regress/annotations/should_fail/annfail10.stderr +++ b/testsuite/tests/ghc-regress/annotations/should_fail/annfail10.stderr @@ -1,9 +1,9 @@ -annfail10.hs:9:1: - Ambiguous type variable `a' in the constraints: - (Data.Data.Data a) arising from an annotation - at annfail10.hs:9:1-15 - (Num a) arising from the literal `1' at annfail10.hs:9:11 +annfail10.hs:9:11: + Ambiguous type variable `a0' in the constraints: + (Num a0) arising from the literal `1' at annfail10.hs:9:11 + (Data.Data.Data a0) arising from an annotation + at annfail10.hs:9:1-15 Probable fix: add a type signature that fixes these type variable(s) In the expression: 1 In the annotation: {-# ANN f 1 #-} diff --git a/testsuite/tests/ghc-regress/deriving/should_fail/T2851.stderr b/testsuite/tests/ghc-regress/deriving/should_fail/T2851.stderr index b7e8760dfe..a2beb9869d 100644 --- a/testsuite/tests/ghc-regress/deriving/should_fail/T2851.stderr +++ b/testsuite/tests/ghc-regress/deriving/should_fail/T2851.stderr @@ -2,7 +2,8 @@ T2851.hs:9:15: No instance for (Show (F a)) arising from the 'deriving' clause of a data type declaration - Possible fix: add an instance declaration for (Show (F a)) - Alternatively, use a standalone 'deriving instance' declaration, - so you can specify the instance context yourself + Possible fix: + add an instance declaration for (Show (F a)) + or use a standalone 'deriving instance' declaration, + so you can specify the instance context yourself When deriving the instance for (Show (D a)) diff --git a/testsuite/tests/ghc-regress/deriving/should_fail/T3621.hs b/testsuite/tests/ghc-regress/deriving/should_fail/T3621.hs index a110047bad..cd574eab81 100644 --- a/testsuite/tests/ghc-regress/deriving/should_fail/T3621.hs +++ b/testsuite/tests/ghc-regress/deriving/should_fail/T3621.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE GeneralizedNewtypeDeriving, MultiParamTypeClasses, FlexibleInstances, FunctionalDependencies #-} +{-# LANGUAGE GeneralizedNewtypeDeriving, MultiParamTypeClasses, FlexibleInstances, FunctionalDependencies, FlexibleContexts, UndecidableInstances, StandaloneDeriving #-} module T3621 where -- This one is ok, even though the deriving clause mentions 'a' @@ -18,6 +18,19 @@ instance Monad (State s) where {} instance MonadState s (State s) where {} newtype WrappedState s a = WS { runWS :: State s a } - deriving (Monad, MonadState state) + deriving (Monad, MonadState state) +-- deriving (Monad) +deriving instance (MonadState state (State s)) + => MonadState state (WrappedState s) +-- ASSERT error +-- deriving instance (MonadState state (State s), Monad (WrappedState s)) +-- => MonadState s (WrappedState s) + + +-- We try +-- instance MonadState state (State state a) +-- => MonadState state (WrappedState state a) +-- +-- Superclass needs (Monad (WrappedState state a)) diff --git a/testsuite/tests/ghc-regress/deriving/should_fail/T3621.stderr b/testsuite/tests/ghc-regress/deriving/should_fail/T3621.stderr index 2452be8578..68213c61e8 100644 --- a/testsuite/tests/ghc-regress/deriving/should_fail/T3621.stderr +++ b/testsuite/tests/ghc-regress/deriving/should_fail/T3621.stderr @@ -1,11 +1,9 @@ -T3621.hs:21:22: - Couldn't match type `s' with `state' - `s' is a rigid type variable bound by - the instance declaration at T3621.hs:21:22 - `state' is a rigid type variable bound by - the instance declaration at T3621.hs:21:22 - arising from the 'deriving' clause of a data type declaration - Alternatively, use a standalone 'deriving instance' declaration, - so you can specify the instance context yourself +T3621.hs:21:21: + No instance for (MonadState state (State s)) + arising from the 'deriving' clause of a data type declaration + Possible fix: + add an instance declaration for (MonadState state (State s)) + or use a standalone 'deriving instance' declaration, + so you can specify the instance context yourself When deriving the instance for (MonadState state (WrappedState s)) diff --git a/testsuite/tests/ghc-regress/deriving/should_fail/drvfail-foldable-traversable1.stderr b/testsuite/tests/ghc-regress/deriving/should_fail/drvfail-foldable-traversable1.stderr index 2f85820e80..4eaf69c8b7 100644 --- a/testsuite/tests/ghc-regress/deriving/should_fail/drvfail-foldable-traversable1.stderr +++ b/testsuite/tests/ghc-regress/deriving/should_fail/drvfail-foldable-traversable1.stderr @@ -2,17 +2,19 @@ drvfail-foldable-traversable1.hs:9:23: No instance for (Functor Trivial1) arising from the 'deriving' clause of a data type declaration - Possible fix: add an instance declaration for (Functor Trivial1) - Alternatively, use a standalone 'deriving instance' declaration, - so you can specify the instance context yourself + Possible fix: + add an instance declaration for (Functor Trivial1) + or use a standalone 'deriving instance' declaration, + so you can specify the instance context yourself When deriving the instance for (Traversable Trivial1) drvfail-foldable-traversable1.hs:13:22: No instance for (Foldable Trivial2) arising from the 'deriving' clause of a data type declaration - Possible fix: add an instance declaration for (Foldable Trivial2) - Alternatively, use a standalone 'deriving instance' declaration, - so you can specify the instance context yourself + Possible fix: + add an instance declaration for (Foldable Trivial2) + or use a standalone 'deriving instance' declaration, + so you can specify the instance context yourself When deriving the instance for (Traversable Trivial2) drvfail-foldable-traversable1.hs:17:22: diff --git a/testsuite/tests/ghc-regress/deriving/should_fail/drvfail-functor2.stderr b/testsuite/tests/ghc-regress/deriving/should_fail/drvfail-functor2.stderr index 14835b2542..64ff9d0bef 100644 --- a/testsuite/tests/ghc-regress/deriving/should_fail/drvfail-functor2.stderr +++ b/testsuite/tests/ghc-regress/deriving/should_fail/drvfail-functor2.stderr @@ -22,7 +22,8 @@ drvfail-functor2.hs:20:14: drvfail-functor2.hs:26:14: No instance for (Functor NoFunctor) arising from the 'deriving' clause of a data type declaration - Possible fix: add an instance declaration for (Functor NoFunctor) - Alternatively, use a standalone 'deriving instance' declaration, - so you can specify the instance context yourself + Possible fix: + add an instance declaration for (Functor NoFunctor) + or use a standalone 'deriving instance' declaration, + so you can specify the instance context yourself When deriving the instance for (Functor UseNoFunctor) diff --git a/testsuite/tests/ghc-regress/deriving/should_fail/drvfail001.stderr b/testsuite/tests/ghc-regress/deriving/should_fail/drvfail001.stderr index 5e4995f84f..a2a149594c 100644 --- a/testsuite/tests/ghc-regress/deriving/should_fail/drvfail001.stderr +++ b/testsuite/tests/ghc-regress/deriving/should_fail/drvfail001.stderr @@ -2,7 +2,8 @@ drvfail001.hs:16:33: No instance for (Show (f (f a))) arising from the 'deriving' clause of a data type declaration - Possible fix: add an instance declaration for (Show (f (f a))) - Alternatively, use a standalone 'deriving instance' declaration, - so you can specify the instance context yourself + Possible fix: + add an instance declaration for (Show (f (f a))) + or use a standalone 'deriving instance' declaration, + so you can specify the instance context yourself When deriving the instance for (Show (SM f a)) diff --git a/testsuite/tests/ghc-regress/deriving/should_fail/drvfail003.stderr b/testsuite/tests/ghc-regress/deriving/should_fail/drvfail003.stderr index ef57adf645..4aa98531b8 100644 --- a/testsuite/tests/ghc-regress/deriving/should_fail/drvfail003.stderr +++ b/testsuite/tests/ghc-regress/deriving/should_fail/drvfail003.stderr @@ -2,7 +2,8 @@ drvfail003.hs:16:56: No instance for (Show (v (v a))) arising from the 'deriving' clause of a data type declaration - Possible fix: add an instance declaration for (Show (v (v a))) - Alternatively, use a standalone 'deriving instance' declaration, - so you can specify the instance context yourself + Possible fix: + add an instance declaration for (Show (v (v a))) + or use a standalone 'deriving instance' declaration, + so you can specify the instance context yourself When deriving the instance for (Show (Square_ v w a)) diff --git a/testsuite/tests/ghc-regress/deriving/should_fail/drvfail004.stderr b/testsuite/tests/ghc-regress/deriving/should_fail/drvfail004.stderr index 1b3481465f..d08f315cb7 100644 --- a/testsuite/tests/ghc-regress/deriving/should_fail/drvfail004.stderr +++ b/testsuite/tests/ghc-regress/deriving/should_fail/drvfail004.stderr @@ -2,7 +2,8 @@ drvfail004.hs:8:12: No instance for (Eq (Foo a b)) arising from the 'deriving' clause of a data type declaration - Possible fix: add an instance declaration for (Eq (Foo a b)) - Alternatively, use a standalone 'deriving instance' declaration, - so you can specify the instance context yourself + Possible fix: + add an instance declaration for (Eq (Foo a b)) + or use a standalone 'deriving instance' declaration, + so you can specify the instance context yourself When deriving the instance for (Ord (Foo a b)) diff --git a/testsuite/tests/ghc-regress/deriving/should_fail/drvfail007.stderr b/testsuite/tests/ghc-regress/deriving/should_fail/drvfail007.stderr index d24b7f4859..7dc7124fd1 100644 --- a/testsuite/tests/ghc-regress/deriving/should_fail/drvfail007.stderr +++ b/testsuite/tests/ghc-regress/deriving/should_fail/drvfail007.stderr @@ -2,7 +2,8 @@ drvfail007.hs:4:38: No instance for (Eq (Int -> Int)) arising from the 'deriving' clause of a data type declaration - Possible fix: add an instance declaration for (Eq (Int -> Int)) - Alternatively, use a standalone 'deriving instance' declaration, - so you can specify the instance context yourself + Possible fix: + add an instance declaration for (Eq (Int -> Int)) + or use a standalone 'deriving instance' declaration, + so you can specify the instance context yourself When deriving the instance for (Eq Foo) diff --git a/testsuite/tests/ghc-regress/deriving/should_fail/drvfail012.stderr b/testsuite/tests/ghc-regress/deriving/should_fail/drvfail012.stderr index b6b3c27a73..22fac4887d 100644 --- a/testsuite/tests/ghc-regress/deriving/should_fail/drvfail012.stderr +++ b/testsuite/tests/ghc-regress/deriving/should_fail/drvfail012.stderr @@ -2,7 +2,8 @@ drvfail012.hs:5:33: No instance for (Eq (Ego a)) arising from the 'deriving' clause of a data type declaration - Possible fix: add an instance declaration for (Eq (Ego a)) - Alternatively, use a standalone 'deriving instance' declaration, - so you can specify the instance context yourself + Possible fix: + add an instance declaration for (Eq (Ego a)) + or use a standalone 'deriving instance' declaration, + so you can specify the instance context yourself When deriving the instance for (Ord (Ego a)) diff --git a/testsuite/tests/ghc-regress/deriving/should_fail/drvfail013.stderr b/testsuite/tests/ghc-regress/deriving/should_fail/drvfail013.stderr index 42c82445c1..94927cd790 100644 --- a/testsuite/tests/ghc-regress/deriving/should_fail/drvfail013.stderr +++ b/testsuite/tests/ghc-regress/deriving/should_fail/drvfail013.stderr @@ -2,15 +2,17 @@ drvfail013.hs:4:70: No instance for (Eq (m (Maybe a))) arising from the 'deriving' clause of a data type declaration - Possible fix: add an instance declaration for (Eq (m (Maybe a))) - Alternatively, use a standalone 'deriving instance' declaration, - so you can specify the instance context yourself + Possible fix: + add an instance declaration for (Eq (m (Maybe a))) + or use a standalone 'deriving instance' declaration, + so you can specify the instance context yourself When deriving the instance for (Eq (MaybeT m a)) drvfail013.hs:6:70: No instance for (Eq (m (Maybe a))) arising from the 'deriving' clause of a data type declaration - Possible fix: add an instance declaration for (Eq (m (Maybe a))) - Alternatively, use a standalone 'deriving instance' declaration, - so you can specify the instance context yourself + Possible fix: + add an instance declaration for (Eq (m (Maybe a))) + or use a standalone 'deriving instance' declaration, + so you can specify the instance context yourself When deriving the instance for (Eq (MaybeT' m a)) diff --git a/testsuite/tests/ghc-regress/gadt/T3651.stderr b/testsuite/tests/ghc-regress/gadt/T3651.stderr index 6e80f99eb4..d15e27aefa 100644 --- a/testsuite/tests/ghc-regress/gadt/T3651.stderr +++ b/testsuite/tests/ghc-regress/gadt/T3651.stderr @@ -2,20 +2,20 @@ T3651.hs:11:11: Couldn't match type `()' with `Bool' Inaccessible code in - a pattern with constructor `U', in an equation for `unsafe1' + a pattern with constructor U :: Z (), in an equation for `unsafe1' In the pattern: U In an equation for `unsafe1': unsafe1 B U = () T3651.hs:14:11: Couldn't match type `()' with `Bool' Inaccessible code in - a pattern with constructor `U', in an equation for `unsafe2' + a pattern with constructor U :: Z (), in an equation for `unsafe2' In the pattern: U In an equation for `unsafe2': unsafe2 B U = () T3651.hs:17:11: Couldn't match type `()' with `Bool' Inaccessible code in - a pattern with constructor `U', in an equation for `unsafe3' + a pattern with constructor U :: Z (), in an equation for `unsafe3' In the pattern: U In an equation for `unsafe3': unsafe3 B U = True diff --git a/testsuite/tests/ghc-regress/gadt/gadt10.stderr b/testsuite/tests/ghc-regress/gadt/gadt10.stderr index ff8f8a3c2b..100c84bab7 100644 --- a/testsuite/tests/ghc-regress/gadt/gadt10.stderr +++ b/testsuite/tests/ghc-regress/gadt/gadt10.stderr @@ -1,7 +1,7 @@ gadt10.hs:6:24: `RInt' is not applied to enough type arguments - Expected kind `?', but `RInt' has kind `k -> *' + Expected kind `?', but `RInt' has kind `k0 -> *' In the type `RInt' In the definition of data constructor `R' In the data type declaration for `RInt' diff --git a/testsuite/tests/ghc-regress/gadt/gadt21.stderr b/testsuite/tests/ghc-regress/gadt/gadt21.stderr index d63dee12fc..061c563465 100644 --- a/testsuite/tests/ghc-regress/gadt/gadt21.stderr +++ b/testsuite/tests/ghc-regress/gadt/gadt21.stderr @@ -1,12 +1,19 @@ gadt21.hs:21:60: - Could not deduce (Ord a1) from the context (a ~ Set a1) - arising from a use of `f' + Could not deduce (Ord a1) arising from a use of `f' + from the context (a ~ Set a1) + bound by a pattern with constructor + TypeSet :: forall a. Type a -> Type (Set a), + in an equation for `withOrdDynExpr' + at gadt21.hs:21:35-43 Possible fix: add (Ord a1) to the context of the data constructor `TypeSet' or the data constructor `DynExpr' - or the type signature for `withOrdDynExpr' + or the type signature for + withOrdDynExpr :: DynExpr + -> (forall a. Ord a => Expr a -> b) + -> Maybe b In the first argument of `Just', namely `(f e)' In the expression: Just (f e) In an equation for `withOrdDynExpr': diff --git a/testsuite/tests/ghc-regress/gadt/rw.stderr b/testsuite/tests/ghc-regress/gadt/rw.stderr index ca9bf157bc..dbac243ab6 100644 --- a/testsuite/tests/ghc-regress/gadt/rw.stderr +++ b/testsuite/tests/ghc-regress/gadt/rw.stderr @@ -2,7 +2,8 @@ rw.hs:14:47: Couldn't match type `a' with `Int' `a' is a rigid type variable bound by - the type signature for `writeInt' at rw.hs:12:14 + the type signature for writeInt :: T a -> IORef a -> IO () + at rw.hs:13:1 In the second argument of `writeIORef', namely `(1 :: Int)' In the expression: writeIORef ref (1 :: Int) In a case alternative: ~(Li x) -> writeIORef ref (1 :: Int) @@ -10,7 +11,9 @@ rw.hs:14:47: rw.hs:19:51: Couldn't match type `a' with `Bool' `a' is a rigid type variable bound by - the type signature for `readBool' at rw.hs:16:14 + the type signature for readBool :: T a -> IORef a -> IO () + at rw.hs:17:1 + Expected type: a -> Bool + Actual type: Bool -> Bool In the second argument of `(.)', namely `not' In the second argument of `(>>=)', namely `(print . not)' - In the expression: readIORef ref >>= (print . not) diff --git a/testsuite/tests/ghc-regress/ghci.debugger/scripts/break012.stdout b/testsuite/tests/ghc-regress/ghci.debugger/scripts/break012.stdout index b87d715902..90e228c293 100644 --- a/testsuite/tests/ghc-regress/ghci.debugger/scripts/break012.stdout +++ b/testsuite/tests/ghc-regress/ghci.debugger/scripts/break012.stdout @@ -1,16 +1,16 @@ Stopped at break012.hs:(1,1)-(5,18) -_result :: (a1, a2 -> a2, (), a -> a -> a) = _ +_result :: (t, a1 -> a1, (), a -> a -> a) = _ Stopped at break012.hs:5:10-18 -_result :: (a1, a2 -> a2, (), a -> a -> a) = _ -a :: a1 = _ -b :: a3 -> a3 = _ +_result :: (t, a1 -> a1, (), a -> a -> a) = _ +a :: t = _ +b :: a2 -> a2 = _ c :: () = _ d :: a -> a -> a = _ -a :: a1 -b :: a3 -> a3 +a :: t +b :: a2 -> a2 c :: () d :: a -> a -> a -a = (_t1::a1) -b = (_t2::forall a3. a3 -> a3) +a = (_t1::t) +b = (_t2::forall a2. a2 -> a2) c = (_t3::()) d = (_t4::a -> a -> a) diff --git a/testsuite/tests/ghc-regress/ghci.debugger/scripts/print006.stdout b/testsuite/tests/ghc-regress/ghci.debugger/scripts/print006.stdout index 7aa12bd5a5..a450e6ce14 100644 --- a/testsuite/tests/ghc-regress/ghci.debugger/scripts/print006.stdout +++ b/testsuite/tests/ghc-regress/ghci.debugger/scripts/print006.stdout @@ -2,7 +2,7 @@ t = O (_t1::t) () t = O ((_t2::a1) : (_t3::[a1])) () -t = O ((_t4::a11) : (_t5::a11) : (_t6::[a11])) +t = O ((_t4::a2) : (_t5::a2) : (_t6::[a2])) () t = O ((_t7::Maybe [a1]) : Just [(_t8::a1),(_t9::a1)] : (_t10::[Maybe [a1]])) diff --git a/testsuite/tests/ghc-regress/ghci.debugger/scripts/print012.script b/testsuite/tests/ghc-regress/ghci.debugger/scripts/print012.script index 0c8f70db89..bda9a8fbe7 100644 --- a/testsuite/tests/ghc-regress/ghci.debugger/scripts/print012.script +++ b/testsuite/tests/ghc-regress/ghci.debugger/scripts/print012.script @@ -7,5 +7,5 @@ let o = O (id foo) seq _t1 () :t _t1 :p o -seq _t3 () +seq _t4 () :p o
\ No newline at end of file diff --git a/testsuite/tests/ghc-regress/ghci.debugger/scripts/print012.stdout b/testsuite/tests/ghc-regress/ghci.debugger/scripts/print012.stdout index 9c9d8b6fc6..c80e1c0099 100644 --- a/testsuite/tests/ghc-regress/ghci.debugger/scripts/print012.stdout +++ b/testsuite/tests/ghc-regress/ghci.debugger/scripts/print012.stdout @@ -1,8 +1,10 @@ -o = O (_t1::t)
-()
-_t1 :: SafeList x NonEmpty
-o = O (Cons (_t2::GHC.Classes.T:Eq x1) (_t3::x1)
- (_t4::SafeList x1 y))
-()
-o = O (Cons (_t5::GHC.Classes.T:Eq Integer) 3
- (_t6::SafeList Integer y1))
+o = O (_t1::t) +() +_t1 :: SafeList a NonEmpty +o = O (Cons (GHC.Classes.D:Eq (_t2::a1 -> a1 -> Bool) + (_t3::a1 -> a1 -> Bool)) + (_t4::a1) (_t5::SafeList a1 y)) +() +o = O (Cons (GHC.Classes.D:Eq (_t6::Integer -> Integer -> Bool) + (_t7::Integer -> Integer -> Bool)) + 3 (_t8::SafeList Integer y1)) diff --git a/testsuite/tests/ghc-regress/ghci.debugger/scripts/print014.script b/testsuite/tests/ghc-regress/ghci.debugger/scripts/print014.script index 50707c64fc..88fce78418 100644 --- a/testsuite/tests/ghc-regress/ghci.debugger/scripts/print014.script +++ b/testsuite/tests/ghc-regress/ghci.debugger/scripts/print014.script @@ -6,4 +6,4 @@ let e = Exist 1 :p e seq _t1 () -:p e
\ No newline at end of file +:p e diff --git a/testsuite/tests/ghc-regress/ghci/scripts/ghci012.stdout b/testsuite/tests/ghc-regress/ghci/scripts/ghci012.stdout index ed37e56ada..98780e4152 100644 --- a/testsuite/tests/ghc-regress/ghci/scripts/ghci012.stdout +++ b/testsuite/tests/ghc-regress/ghci/scripts/ghci012.stdout @@ -1 +1 @@ -($$$) :: [a -> b] -> [a] -> [b] -- Defined at <interactive>:1:8-10 +($$$) :: [b -> c] -> [b] -> [c] -- Defined at <interactive>:1:8-10 diff --git a/testsuite/tests/ghc-regress/indexed-types/should_compile/Gentle.hs b/testsuite/tests/ghc-regress/indexed-types/should_compile/Gentle.hs index 61023c704b..a32ac798a0 100644 --- a/testsuite/tests/ghc-regress/indexed-types/should_compile/Gentle.hs +++ b/testsuite/tests/ghc-regress/indexed-types/should_compile/Gentle.hs @@ -20,10 +20,9 @@ wib x = bar x -- instance Concrete Bool Bool {- This is a nice example of the trickiness of functional dependencies. -Here's what is happening. First a very cut-down version of your -example: +Here's what is happening. -Now consider type inference for 'wib'. GHC 6.6 figures out that the call +Consider type inference for 'wib'. GHC 6.6 figures out that the call of 'bar' gives rise to the constraint (Concrete p q), where x has type 'p'. Ah, but x must have type 'a', so the constraint is (Concrete a q). diff --git a/testsuite/tests/ghc-regress/indexed-types/should_compile/Gentle.stderr b/testsuite/tests/ghc-regress/indexed-types/should_compile/Gentle.stderr new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/testsuite/tests/ghc-regress/indexed-types/should_compile/Gentle.stderr diff --git a/testsuite/tests/ghc-regress/indexed-types/should_compile/Simple14.stderr b/testsuite/tests/ghc-regress/indexed-types/should_compile/Simple14.stderr index 2e920ff5b2..a5250d556f 100644 --- a/testsuite/tests/ghc-regress/indexed-types/should_compile/Simple14.stderr +++ b/testsuite/tests/ghc-regress/indexed-types/should_compile/Simple14.stderr @@ -1,13 +1,13 @@ Simple14.hs:17:12: - Couldn't match type `z' with `n' - `z' is untouchable - inside the constraints (Maybe m ~ Maybe n) - bound at the polymorphic type `x ~ y => EQ_ z z' + Couldn't match type `z0' with `n' + `z0' is untouchable + inside the constraints (Maybe m ~ Maybe n) + bound at a type expected by the context: + Maybe m ~ Maybe n => EQ_ z0 z0 `n' is a rigid type variable bound by - the type signature for `foo' at Simple14.hs:16:17 - Expected type: z - Actual type: m + the type signature for foo :: EQ_ (Maybe m) (Maybe n) + at Simple14.hs:17:1 In the second argument of `eqE', namely `(eqI :: EQ_ m n)' In the first argument of `ntI', namely `(`eqE` (eqI :: EQ_ m n))' In the expression: ntI (`eqE` (eqI :: EQ_ m n)) diff --git a/testsuite/tests/ghc-regress/indexed-types/should_compile/T3017.stderr b/testsuite/tests/ghc-regress/indexed-types/should_compile/T3017.stderr index cc387d48a6..3a277bac61 100644 --- a/testsuite/tests/ghc-regress/indexed-types/should_compile/T3017.stderr +++ b/testsuite/tests/ghc-regress/indexed-types/should_compile/T3017.stderr @@ -1,7 +1,7 @@ TYPE SIGNATURES emptyL :: forall a. ListColl a - test2 :: forall c a a1. - (Num a1, Num a, Coll c, Elem c ~ (a, a1)) => + test2 :: forall c t t1. + (Elem c ~ (t, t1), Coll c, Num t1, Num t) => c -> c TYPE CONSTRUCTORS data ListColl a diff --git a/testsuite/tests/ghc-regress/indexed-types/should_compile/T3208b.stderr b/testsuite/tests/ghc-regress/indexed-types/should_compile/T3208b.stderr index 8c607ffc1b..712f732b06 100644 --- a/testsuite/tests/ghc-regress/indexed-types/should_compile/T3208b.stderr +++ b/testsuite/tests/ghc-regress/indexed-types/should_compile/T3208b.stderr @@ -1,17 +1,22 @@ T3208b.hs:15:10: - Could not deduce (OTerm o ~ STerm a) - from the context (OTerm a ~ STerm a, OBJECT a, SUBST a) - Expected type: STerm o - Actual type: OTerm o + Could not deduce (STerm a0 ~ STerm a) + from the context (OTerm a ~ STerm a, OBJECT a, SUBST a) + bound by the type signature for + fce' :: (OTerm a ~ STerm a, OBJECT a, SUBST a) => a -> c + at T3208b.hs:15:1-22 + NB: `STerm' is a type function, and may not be injective + Expected type: STerm a0 + Actual type: OTerm a0 In the expression: fce (apply f) In an equation for `fce'': fce' f = fce (apply f) -T3208b.hs:15:10: - Could not deduce (STerm o ~ STerm a) - from the context (OTerm a ~ STerm a, OBJECT a, SUBST a) - NB: `STerm' is a type function, and may not be injective - Expected type: STerm o - Actual type: OTerm o +T3208b.hs:15:15: + Could not deduce (OTerm a0 ~ STerm a) + from the context (OTerm a ~ STerm a, OBJECT a, SUBST a) + bound by the type signature for + fce' :: (OTerm a ~ STerm a, OBJECT a, SUBST a) => a -> c + at T3208b.hs:15:1-22 + In the first argument of `fce', namely `(apply f)' In the expression: fce (apply f) In an equation for `fce'': fce' f = fce (apply f) diff --git a/testsuite/tests/ghc-regress/indexed-types/should_compile/T4120.stderr b/testsuite/tests/ghc-regress/indexed-types/should_compile/T4120.stderr index cece097062..d957620b78 100644 --- a/testsuite/tests/ghc-regress/indexed-types/should_compile/T4120.stderr +++ b/testsuite/tests/ghc-regress/indexed-types/should_compile/T4120.stderr @@ -1,8 +1,8 @@ T4120.hs:17:10: Couldn't match expected type `forall s. MVector s a' - with actual type `forall s. Mutable Vector s a1' - Expected type: (forall s. MVector s a) -> Int - Actual type: (forall s. Mutable Vector s a1) -> Int + with actual type `forall s. Mutable Vector s a0' + Expected type: (forall s. MVector s a) -> Int + Actual type: (forall s. Mutable Vector s a0) -> Int In the expression: create1 In an equation for `create': create = create1 diff --git a/testsuite/tests/ghc-regress/indexed-types/should_compile/all.T b/testsuite/tests/ghc-regress/indexed-types/should_compile/all.T index eae2082c3b..4bc42ebecf 100644 --- a/testsuite/tests/ghc-regress/indexed-types/should_compile/all.T +++ b/testsuite/tests/ghc-regress/indexed-types/should_compile/all.T @@ -116,7 +116,9 @@ test('GivenCheckSwap', normal, compile, ['']) test('GivenCheckDecomp', normal, compile, ['']) test('GivenCheckTop', normal, compile, ['']) -test('Gentle', normal, compile, ['']) +# A very delicate test +test('Gentle', normal, compile_fail, ['']) + test('T1981', normal, compile, ['']) test('T2238', expect_fail, compile, ['']) test('OversatDecomp', normal, compile, ['']) diff --git a/testsuite/tests/ghc-regress/indexed-types/should_fail/GADTwrong1.stderr b/testsuite/tests/ghc-regress/indexed-types/should_fail/GADTwrong1.stderr index 3fbe7df32d..e565aa6cde 100644 --- a/testsuite/tests/ghc-regress/indexed-types/should_fail/GADTwrong1.stderr +++ b/testsuite/tests/ghc-regress/indexed-types/should_fail/GADTwrong1.stderr @@ -1,11 +1,18 @@ GADTwrong1.hs:12:19: - Could not deduce (a1 ~ b) from the context (() ~ Const a1) + Could not deduce (a1 ~ b) + from the context (() ~ Const a1) + bound by a pattern with constructor + T :: forall a. a -> T (Const a), + in a case alternative + at GADTwrong1.hs:12:12-14 `a1' is a rigid type variable bound by - a pattern with constructor T :: forall a. a -> T (Const a) - at GADTwrong1.hs:12:12 + a pattern with constructor + T :: forall a. a -> T (Const a), + in a case alternative + at GADTwrong1.hs:12:12 `b' is a rigid type variable bound by - the type signature for `coerce' at GADTwrong1.hs:10:20 + the type signature for coerce :: a -> b at GADTwrong1.hs:11:1 In the expression: y In a case alternative: T y -> y In the expression: case T x :: T (Const b) of { T y -> y } diff --git a/testsuite/tests/ghc-regress/indexed-types/should_fail/NoMatchErr.stderr b/testsuite/tests/ghc-regress/indexed-types/should_fail/NoMatchErr.stderr index d5bd530fa5..713afea184 100644 --- a/testsuite/tests/ghc-regress/indexed-types/should_fail/NoMatchErr.stderr +++ b/testsuite/tests/ghc-regress/indexed-types/should_fail/NoMatchErr.stderr @@ -1,9 +1,13 @@ NoMatchErr.hs:20:5: - Could not deduce (Memo d ~ Memo d1) from the context (Fun d1) + Could not deduce (Memo d ~ Memo d0) + from the context (Fun d) + bound by the type signature for f :: Fun d => Memo d a -> Memo d a + at NoMatchErr.hs:20:1-15 NB: `Memo' is a type function, and may not be injective - Expected type: Memo d1 a - Actual type: Memo d a - In the first argument of `(.)', namely `abst' + Expected type: Memo d a + Actual type: Memo d0 a + Expected type: Memo d a -> Memo d a + Actual type: Memo d0 a -> Memo d0 a In the expression: abst . appl In an equation for `f': f = abst . appl diff --git a/testsuite/tests/ghc-regress/indexed-types/should_fail/SimpleFail16.stderr b/testsuite/tests/ghc-regress/indexed-types/should_fail/SimpleFail16.stderr index e9140b2019..0573e15aea 100644 --- a/testsuite/tests/ghc-regress/indexed-types/should_fail/SimpleFail16.stderr +++ b/testsuite/tests/ghc-regress/indexed-types/should_fail/SimpleFail16.stderr @@ -1,6 +1,6 @@ SimpleFail16.hs:10:12: - Couldn't match type `F ()' with `p a' + Couldn't match type `F ()' with `p0 a0' In the first argument of `foo', namely `(undefined :: F ())' In the expression: foo (undefined :: F ()) In an equation for `bar': bar = foo (undefined :: F ()) diff --git a/testsuite/tests/ghc-regress/indexed-types/should_fail/SimpleFail5a.stderr b/testsuite/tests/ghc-regress/indexed-types/should_fail/SimpleFail5a.stderr index fb78afd0a2..861ef5c869 100644 --- a/testsuite/tests/ghc-regress/indexed-types/should_fail/SimpleFail5a.stderr +++ b/testsuite/tests/ghc-regress/indexed-types/should_fail/SimpleFail5a.stderr @@ -2,6 +2,9 @@ SimpleFail5a.hs:31:11: Couldn't match type `a' with `Int' `a' is a rigid type variable bound by - the type signature for `bar3wrong' at SimpleFail5a.hs:30:17 + the type signature for bar3wrong :: S3 a -> a + at SimpleFail5a.hs:31:1 + Expected type: S3 a + Actual type: S3 Int In the pattern: D3Int In an equation for `bar3wrong': bar3wrong D3Int = 1 diff --git a/testsuite/tests/ghc-regress/indexed-types/should_fail/T1900.hs b/testsuite/tests/ghc-regress/indexed-types/should_fail/T1900.hs index df112d38ed..efcfbc1391 100644 --- a/testsuite/tests/ghc-regress/indexed-types/should_fail/T1900.hs +++ b/testsuite/tests/ghc-regress/indexed-types/should_fail/T1900.hs @@ -65,7 +65,7 @@ check d = d == trans d Bug sigma, (invocation of trans at sigma) {der}Eq fsk) -==> discharde {der} Eq fsk +==> discharge {der} Eq fsk Wanted: ({given}uf ~ fsk Depend sigma ~ uf (second arg of ==) Bug sigma, (invocation of trans at sigma) diff --git a/testsuite/tests/ghc-regress/indexed-types/should_fail/T1900.stderr b/testsuite/tests/ghc-regress/indexed-types/should_fail/T1900.stderr index 578a766a2f..4e3be835c4 100644 --- a/testsuite/tests/ghc-regress/indexed-types/should_fail/T1900.stderr +++ b/testsuite/tests/ghc-regress/indexed-types/should_fail/T1900.stderr @@ -1,16 +1,18 @@ -T1900.hs:11:12: +T1900.hs:11:13: No instance for (Num ()) - arising from a use of `+' + arising from the literal `1' Possible fix: add an instance declaration for (Num ()) + In the second argument of `(+)', namely `1' In the expression: (+ 1) In an equation for `trans': trans = (+ 1) - In the instance declaration for `Bug Int' -T1900.hs:14:16: - Could not deduce (Depend s ~ Depend s1) from the context (Bug s1) +T1900.hs:14:22: + Could not deduce (Depend s0 ~ Depend s) + from the context (Bug s) + bound by the type signature for check :: Bug s => Depend s -> Bool + at T1900.hs:14:1-22 NB: `Depend' is a type function, and may not be injective - arising from a use of `trans' + In the first argument of `trans', namely `d' In the second argument of `(==)', namely `trans d' In the expression: d == trans d - In an equation for `check': check d = d == trans d diff --git a/testsuite/tests/ghc-regress/indexed-types/should_fail/T2627b.stderr b/testsuite/tests/ghc-regress/indexed-types/should_fail/T2627b.stderr index 39ea0c5b84..a8e232486b 100644 --- a/testsuite/tests/ghc-regress/indexed-types/should_fail/T2627b.stderr +++ b/testsuite/tests/ghc-regress/indexed-types/should_fail/T2627b.stderr @@ -1,6 +1,7 @@ T2627b.hs:20:24: - Occurs check: cannot construct the infinite type: b = Dual (Dual b) + Occurs check: cannot construct the infinite type: + a0 = Dual (Dual a0) In the expression: conn undefined undefined In an equation for `conn': conn (Rd k) (Wr a r) = conn undefined undefined diff --git a/testsuite/tests/ghc-regress/indexed-types/should_fail/T2664.stderr b/testsuite/tests/ghc-regress/indexed-types/should_fail/T2664.stderr index 2fc0014d4d..b3b8428a55 100644 --- a/testsuite/tests/ghc-regress/indexed-types/should_fail/T2664.stderr +++ b/testsuite/tests/ghc-regress/indexed-types/should_fail/T2664.stderr @@ -1,17 +1,18 @@ -T2664.hs:31:52: - Could not deduce (b ~ a) - from the context (Connect a, - Connect b, - (a :*: b) ~ Dual c, - c ~ Dual (a :*: b)) - `b' is a rigid type variable bound by - the instance declaration at T2664.hs:22:30 - `a' is a rigid type variable bound by - the instance declaration at T2664.hs:22:19 - Expected type: Dual (Dual a) - Actual type: b - In the third argument of `pchoose', namely `newPChan' - In the first argument of `E', namely `(pchoose Right v newPChan)' +T2664.hs:31:33: + Could not deduce (Dual a ~ Dual b) + from the context (Connect a, Connect b) + bound by the instance declaration at T2664.hs:22:10-52 + or from ((a :*: b) ~ Dual c, c ~ Dual (a :*: b)) + bound by the type signature for + newPChan :: ((a :*: b) ~ Dual c, c ~ Dual (a :*: b)) => + IO (PChan (a :*: b), PChan c) + at T2664.hs:(23,5)-(31,87) + NB: `Dual' is a type function, and may not be injective + Expected type: c + Actual type: Dual b :+: Dual a + Expected type: PChan c + Actual type: PChan (Dual b :+: Dual a) + In the return type of a call of `E' In the expression: E (pchoose Right v newPChan) (pchoose Left v newPChan) diff --git a/testsuite/tests/ghc-regress/indexed-types/should_fail/T2693.stderr b/testsuite/tests/ghc-regress/indexed-types/should_fail/T2693.stderr index 295cea5db2..2072d53296 100644 --- a/testsuite/tests/ghc-regress/indexed-types/should_fail/T2693.stderr +++ b/testsuite/tests/ghc-regress/indexed-types/should_fail/T2693.stderr @@ -1,9 +1,7 @@ T2693.hs:9:16: - Couldn't match type `TFn a' with `(a1, b)' + Couldn't match type `TFn a0' with `(a1, b0)' + Expected type: Maybe (a1, b0) + Actual type: Maybe (TFn a0) In the expression: undefined :: Maybe (TFn a) In a pattern binding: Just x = undefined :: Maybe (TFn a) - In the expression: - do { let Just x = ...; - let n = fst x + fst x; - return () } diff --git a/testsuite/tests/ghc-regress/indexed-types/should_fail/T3330a.stderr b/testsuite/tests/ghc-regress/indexed-types/should_fail/T3330a.stderr index 1c515510ad..7e01b28b40 100644 --- a/testsuite/tests/ghc-regress/indexed-types/should_fail/T3330a.stderr +++ b/testsuite/tests/ghc-regress/indexed-types/should_fail/T3330a.stderr @@ -1,19 +1,11 @@ -T3330a.hs:17:34: - Occurs check: cannot construct the infinite type: - s = (->) (s ix -> ix) - Expected type: r ix -> Writer [AnyF s1] (r ix) - Actual type: ix2 - In the first argument of `hmapM', namely `p' - In the first argument of `execWriter', namely `(hmapM p collect x)' - In the expression: execWriter (hmapM p collect x) - T3330a.hs:17:44: - Couldn't match type `ix2' with `r ix1 -> Writer [AnyF s] (r ix1)' - `ix2' is a rigid type variable bound by - the type signature for `children' at T3330a.hs:16:15 - Expected type: PF s1 r (r ix1 -> Writer [AnyF s] (r ix1)) - Actual type: PF s1 r ix2 + Couldn't match type `ix' with `r0 ix0 -> Writer [AnyF s0] (r0 ix0)' + `ix' is a rigid type variable bound by + the type signature for children :: s ix -> PF s r ix -> [AnyF s] + at T3330a.hs:17:1 + Expected type: PF s r (r0 ix0 -> Writer [AnyF s0] (r0 ix0)) + Actual type: PF s r ix In the third argument of `hmapM', namely `x' In the first argument of `execWriter', namely `(hmapM p collect x)' In the expression: execWriter (hmapM p collect x) diff --git a/testsuite/tests/ghc-regress/indexed-types/should_fail/T3330c.stderr b/testsuite/tests/ghc-regress/indexed-types/should_fail/T3330c.stderr index a8c5c68888..9b7debcb95 100644 --- a/testsuite/tests/ghc-regress/indexed-types/should_fail/T3330c.stderr +++ b/testsuite/tests/ghc-regress/indexed-types/should_fail/T3330c.stderr @@ -1,26 +1,18 @@ -T3330c.hs:23:21: - Could not deduce (f2 ~ Der f2) from the context (f1 ~ (f2 :+: g)) - `f2' is a rigid type variable bound by - a pattern with constructor - RSum :: forall (f :: * -> *) (g :: * -> *). - R f -> R g -> R (f :+: g) - at T3330c.hs:23:8 - Expected type: Der f1 x - Actual type: (:+:) f (Der g) x - In the pattern: Inl df - In an equation for `plug'': - plug' (RSum rf rg) (Inl df) x = Inl (plug rf df x) +T3330c.hs:23:43: + Couldn't match type `Der ((->) x)' with `R' + In the first argument of `plug', namely `rf' + In the first argument of `Inl', namely `(plug rf df x)' + In the expression: Inl (plug rf df x) T3330c.hs:23:43: - Couldn't match type `f' with `f x' - `f' is a rigid type variable bound by - a pattern with constructor - RSum :: forall (f :: * -> *) (g :: * -> *). - R f -> R g -> R (f :+: g) - at T3330c.hs:23:8 - Expected type: Der ((->) x) (f x) - Actual type: R f + Couldn't match type `f1' with `f1 x' + `f1' is a rigid type variable bound by + a pattern with constructor + RSum :: forall (f :: * -> *) (g :: * -> *). + R f -> R g -> R (f :+: g), + in an equation for `plug'' + at T3330c.hs:23:8 In the first argument of `plug', namely `rf' In the first argument of `Inl', namely `(plug rf df x)' In the expression: Inl (plug rf df x) diff --git a/testsuite/tests/ghc-regress/indexed-types/should_fail/T3440.stderr b/testsuite/tests/ghc-regress/indexed-types/should_fail/T3440.stderr index 05bd7f963e..fe61b1da65 100644 --- a/testsuite/tests/ghc-regress/indexed-types/should_fail/T3440.stderr +++ b/testsuite/tests/ghc-regress/indexed-types/should_fail/T3440.stderr @@ -1,12 +1,19 @@ T3440.hs:11:22: - Could not deduce (a1 ~ a) from the context (Fam a ~ Fam a1) + Could not deduce (a1 ~ a) + from the context (Fam a ~ Fam a1) + bound by a pattern with constructor + GADT :: forall a. a -> Fam a -> GADT (Fam a), + in an equation for `unwrap' + at T3440.hs:11:9-16 `a1' is a rigid type variable bound by a pattern with constructor - GADT :: forall a. a -> Fam a -> GADT (Fam a) - at T3440.hs:11:9 + GADT :: forall a. a -> Fam a -> GADT (Fam a), + in an equation for `unwrap' + at T3440.hs:11:9 `a' is a rigid type variable bound by - the type signature for `unwrap' at T3440.hs:10:21 + the type signature for unwrap :: GADT (Fam a) -> (a, Fam a) + at T3440.hs:11:1 In the expression: x In the expression: (x, y) In an equation for `unwrap': unwrap (GADT x y) = (x, y) diff --git a/testsuite/tests/ghc-regress/indexed-types/should_fail/T4093a.stderr b/testsuite/tests/ghc-regress/indexed-types/should_fail/T4093a.stderr index ade9163bd4..0b36936be9 100644 --- a/testsuite/tests/ghc-regress/indexed-types/should_fail/T4093a.stderr +++ b/testsuite/tests/ghc-regress/indexed-types/should_fail/T4093a.stderr @@ -1,9 +1,14 @@ T4093a.hs:8:8: - Could not deduce (e ~ ()) from the context (Foo e ~ Maybe e) + Could not deduce (e ~ ()) + from the context (Foo e ~ Maybe e) + bound by the type signature for hang :: Foo e ~ Maybe e => Foo e + at T4093a.hs:8:1-14 `e' is a rigid type variable bound by - the type signature for `hang' at T4093a.hs:7:14 + the type signature for hang :: Foo e ~ Maybe e => Foo e + at T4093a.hs:8:1 Expected type: Foo e Actual type: Maybe () + In the return type of a call of `Just' In the expression: Just () In an equation for `hang': hang = Just () diff --git a/testsuite/tests/ghc-regress/indexed-types/should_fail/T4093b.stderr b/testsuite/tests/ghc-regress/indexed-types/should_fail/T4093b.stderr index e479b18978..6818e006ef 100644 --- a/testsuite/tests/ghc-regress/indexed-types/should_fail/T4093b.stderr +++ b/testsuite/tests/ghc-regress/indexed-types/should_fail/T4093b.stderr @@ -1,10 +1,19 @@ T4093b.hs:31:13: Could not deduce (e ~ C) - from the context (EitherCO e (A C O n) (A O O n) ~ A e O n, - EitherCO x (A C C n) (A C O n) ~ A C x n) + from the context (EitherCO e (A C O n) (A O O n) ~ A e O n, + EitherCO x (A C C n) (A C O n) ~ A C x n) + bound by the type signature for + blockToNodeList :: (EitherCO e (A C O n) (A O O n) ~ A e O n, + EitherCO x (A C C n) (A C O n) ~ A C x n) => + Block n e x -> A e x n + at T4093b.hs:(25,1)-(34,19) `e' is a rigid type variable bound by - the type signature for `blockToNodeList' at T4093b.hs:20:12 + the type signature for + blockToNodeList :: (EitherCO e (A C O n) (A O O n) ~ A e O n, + EitherCO x (A C C n) (A C O n) ~ A C x n) => + Block n e x -> A e x n + at T4093b.hs:25:1 Expected type: EitherCO e (A C O n) (A O O n) Actual type: (MaybeC C (n C O), MaybeC O (n O C)) In the expression: (JustC n, NothingC) diff --git a/testsuite/tests/ghc-regress/indexed-types/should_fail/T4099.stderr b/testsuite/tests/ghc-regress/indexed-types/should_fail/T4099.stderr index 31e894f6f5..4d1935678b 100644 --- a/testsuite/tests/ghc-regress/indexed-types/should_fail/T4099.stderr +++ b/testsuite/tests/ghc-regress/indexed-types/should_fail/T4099.stderr @@ -1,6 +1,6 @@ T4099.hs:11:14: - Couldn't match type `T a' with `T b' + Couldn't match type `T a0' with `T b' NB: `T' is a type function, and may not be injective In the first argument of `foo', namely `x' In the expression: foo x diff --git a/testsuite/tests/ghc-regress/indexed-types/should_fail/T4174.stderr b/testsuite/tests/ghc-regress/indexed-types/should_fail/T4174.stderr index 5d62024303..2a403786d9 100644 --- a/testsuite/tests/ghc-regress/indexed-types/should_fail/T4174.stderr +++ b/testsuite/tests/ghc-regress/indexed-types/should_fail/T4174.stderr @@ -1,30 +1,5 @@ -
-T4174.hs:42:12:
- Couldn't match type `False' with `True'
- Expected type: True
- Actual type: GHCVersion (WayOf m) :>=: GHC6'10 Minor1
- In the expression: sync_large_objects
- In an equation for `testcase': testcase = sync_large_objects
-
-T4174.hs:42:12:
- Could not deduce (a ~ SmStep) from the context (Monad m)
- `a' is a rigid type variable bound by
- the type signature for `testcase' at T4174.hs:41:60
- In the expression: sync_large_objects
- In an equation for `testcase': testcase = sync_large_objects
-
-T4174.hs:42:12:
- Could not deduce (b ~ RtsSpinLock) from the context (Monad m)
- `b' is a rigid type variable bound by
- the type signature for `testcase' at T4174.hs:41:62
- In the expression: sync_large_objects
- In an equation for `testcase': testcase = sync_large_objects
-
-T4174.hs:42:12:
- Could not deduce (p ~ True) from the context (Monad m)
- `p' is a rigid type variable bound by
- the type signature for `testcase' at T4174.hs:41:57
- Expected type: True
- Actual type: Threaded (WayOf m)
- In the expression: sync_large_objects
- In an equation for `testcase': testcase = sync_large_objects
+ +T4174.hs:42:12: + Couldn't match type `False' with `True' + In the expression: sync_large_objects + In an equation for `testcase': testcase = sync_large_objects diff --git a/testsuite/tests/ghc-regress/indexed-types/should_fail/T4179.stderr b/testsuite/tests/ghc-regress/indexed-types/should_fail/T4179.stderr index 3544db65d8..5798e95589 100644 --- a/testsuite/tests/ghc-regress/indexed-types/should_fail/T4179.stderr +++ b/testsuite/tests/ghc-regress/indexed-types/should_fail/T4179.stderr @@ -1,39 +1,63 @@ T4179.hs:26:16: - Could not deduce (DoC (x (A2 (FCon x) -> A3 (FCon x)))) - from the context (Functor x, DoC (FCon x)) - arising from a use of `op' - Possible fix: - add (DoC (x (A2 (FCon x) -> A3 (FCon x)))) to the context of - the type signature for `fCon' - or add an instance declaration for - (DoC (x (A2 (FCon x) -> A3 (FCon x)))) + Could not deduce (A3 (x (A2 (FCon x) -> A3 (FCon x))) + ~ + A3 (FCon x)) + from the context (Functor x, DoC (FCon x)) + bound by the type signature for + fCon :: (Functor x, DoC (FCon x)) => + Con x -> A2 (FCon x) -> A3 (FCon x) + at T4179.hs:26:1-17 + NB: `A3' is a type function, and may not be injective + Expected type: A2 (FCon x) -> A3 (FCon x) + Actual type: A2 (x (A2 (FCon x) -> A3 (FCon x))) + -> A3 (x (A2 (FCon x) -> A3 (FCon x))) + Expected type: x (A2 (FCon x) -> A3 (FCon x)) + -> A2 (FCon x) + -> A3 (FCon x) + Actual type: x (A2 (FCon x) -> A3 (FCon x)) + -> A2 (x (A2 (FCon x) -> A3 (FCon x))) + -> A3 (x (A2 (FCon x) -> A3 (FCon x))) In the first argument of `foldDoC', namely `op' In the expression: foldDoC op - In an equation for `fCon': fCon = foldDoC op T4179.hs:26:16: Could not deduce (A2 (x (A2 (FCon x) -> A3 (FCon x))) ~ A2 (FCon x)) - from the context (Functor x, DoC (FCon x)) + from the context (Functor x, DoC (FCon x)) + bound by the type signature for + fCon :: (Functor x, DoC (FCon x)) => + Con x -> A2 (FCon x) -> A3 (FCon x) + at T4179.hs:26:1-17 NB: `A2' is a type function, and may not be injective Expected type: A2 (FCon x) -> A3 (FCon x) Actual type: A2 (x (A2 (FCon x) -> A3 (FCon x))) -> A3 (x (A2 (FCon x) -> A3 (FCon x))) + Expected type: x (A2 (FCon x) -> A3 (FCon x)) + -> A2 (FCon x) + -> A3 (FCon x) + Actual type: x (A2 (FCon x) -> A3 (FCon x)) + -> A2 (x (A2 (FCon x) -> A3 (FCon x))) + -> A3 (x (A2 (FCon x) -> A3 (FCon x))) In the first argument of `foldDoC', namely `op' In the expression: foldDoC op - In an equation for `fCon': fCon = foldDoC op T4179.hs:26:16: - Could not deduce (A3 (x (A2 (FCon x) -> A3 (FCon x))) - ~ - A3 (FCon x)) - from the context (Functor x, DoC (FCon x)) - NB: `A3' is a type function, and may not be injective - Expected type: A2 (FCon x) -> A3 (FCon x) - Actual type: A2 (x (A2 (FCon x) -> A3 (FCon x))) - -> A3 (x (A2 (FCon x) -> A3 (FCon x))) + Could not deduce (DoC (x (A2 (FCon x) -> A3 (FCon x)))) + arising from a use of `op' + from the context (Functor x, DoC (FCon x)) + bound by the type signature for + fCon :: (Functor x, DoC (FCon x)) => + Con x -> A2 (FCon x) -> A3 (FCon x) + at T4179.hs:26:1-17 + Possible fix: + add (DoC (x (A2 (FCon x) -> A3 (FCon x)))) to the context of + the type signature for + fCon :: (Functor x, DoC (FCon x)) => + Con x -> A2 (FCon x) -> A3 (FCon x) + or add an instance declaration for + (DoC (x (A2 (FCon x) -> A3 (FCon x)))) In the first argument of `foldDoC', namely `op' In the expression: foldDoC op In an equation for `fCon': fCon = foldDoC op diff --git a/testsuite/tests/ghc-regress/indexed-types/should_fail/T4254.hs b/testsuite/tests/ghc-regress/indexed-types/should_fail/T4254.hs index a5b8e86f27..b12ffb4f87 100644 --- a/testsuite/tests/ghc-regress/indexed-types/should_fail/T4254.hs +++ b/testsuite/tests/ghc-regress/indexed-types/should_fail/T4254.hs @@ -17,4 +17,5 @@ ok2 = op fails :: forall a b. (a~Int,FD a b) => a -> Bool fails = op --- Should fail: no proof that b~Bool +-- Could fail: no proof that b~Bool +-- But can also succeed; it's not a *wanted* constraint diff --git a/testsuite/tests/ghc-regress/indexed-types/should_fail/T4254.stderr b/testsuite/tests/ghc-regress/indexed-types/should_fail/T4254.stderr index fcff8a0452..e69de29bb2 100644 --- a/testsuite/tests/ghc-regress/indexed-types/should_fail/T4254.stderr +++ b/testsuite/tests/ghc-regress/indexed-types/should_fail/T4254.stderr @@ -1,11 +0,0 @@ - -T4254.hs:19:10: - Could not deduce (b ~ Bool) from the context (a ~ Int, FD a b) - `b' is a rigid type variable bound by - the type signature for `fails' at T4254.hs:18:19 - When using functional dependencies to combine - FD Int Bool, arising from a use of `op' at T4254.hs:19:10-11 - FD Int b, - arising from the type signature for `fails' at T4254.hs:19:1-11 - In the expression: op - In an equation for `fails': fails = op diff --git a/testsuite/tests/ghc-regress/indexed-types/should_fail/T4272.stderr b/testsuite/tests/ghc-regress/indexed-types/should_fail/T4272.stderr index 9e36cdabd8..792cde92b8 100644 --- a/testsuite/tests/ghc-regress/indexed-types/should_fail/T4272.stderr +++ b/testsuite/tests/ghc-regress/indexed-types/should_fail/T4272.stderr @@ -1,12 +1,8 @@ -T4272.hs:11:26: - Couldn't match type `a' with `TermFamily a a' - `a' is a rigid type variable bound by - the type signature for `laws' at T4272.hs:10:16 - Expected type: TermFamily a (TermFamily a a) - Actual type: TermFamily a a - In the first argument of `terms', namely - `(undefined :: TermFamily a a)' - In the second argument of `prune', namely - `(terms (undefined :: TermFamily a a))' +T4272.hs:11:16: + Occurs check: cannot construct the infinite type: + a0 = TermFamily a0 a0 + In the first argument of `prune', namely `t' In the expression: prune t (terms (undefined :: TermFamily a a)) + In an equation for `laws': + laws t = prune t (terms (undefined :: TermFamily a a)) diff --git a/testsuite/tests/ghc-regress/indexed-types/should_fail/T4485.stderr b/testsuite/tests/ghc-regress/indexed-types/should_fail/T4485.stderr index c4bccf78c2..a9e9792cda 100644 --- a/testsuite/tests/ghc-regress/indexed-types/should_fail/T4485.stderr +++ b/testsuite/tests/ghc-regress/indexed-types/should_fail/T4485.stderr @@ -1,7 +1,7 @@ T4485.hs:47:15: Overlapping instances for EmbedAsChild - (IdentityT IO) (XMLGenT m (XML m)) + (IdentityT IO) (XMLGenT m0 (XML m0)) arising from a use of `asChild' Matching instances: instance [overlap ok] (m1 ~ m, EmbedAsChild m c) => @@ -10,7 +10,7 @@ T4485.hs:47:15: instance [overlap ok] EmbedAsChild (IdentityT IO) (XMLGenT Identity ()) -- Defined at T4485.hs:42:10-58 - (The choice depends on the instantiation of `m' + (The choice depends on the instantiation of `m0' To pick the first instance above, use -XIncoherentInstances when compiling the other instance declarations) In the expression: asChild diff --git a/testsuite/tests/ghc-regress/indexed-types/should_fail/all.T b/testsuite/tests/ghc-regress/indexed-types/should_fail/all.T index 66e52eebaf..8b1cf10997 100644 --- a/testsuite/tests/ghc-regress/indexed-types/should_fail/all.T +++ b/testsuite/tests/ghc-regress/indexed-types/should_fail/all.T @@ -60,7 +60,7 @@ test('T3330a', reqlib('mtl'), compile_fail, ['']) test('T3330b', normal, compile_fail, ['']) test('T3330c', normal, compile_fail, ['']) test('T4179', normal, compile_fail, ['']) -test('T4254', normal, compile_fail, ['']) +test('T4254', normal, compile, ['']) test('T2239', normal, compile_fail, ['']) test('T3440', normal, compile_fail, ['']) test('T4485', normal, compile_fail, ['']) diff --git a/testsuite/tests/ghc-regress/mdo/should_fail/mdofail001.stderr b/testsuite/tests/ghc-regress/mdo/should_fail/mdofail001.stderr index eafd7b576e..8660e167fe 100644 --- a/testsuite/tests/ghc-regress/mdo/should_fail/mdofail001.stderr +++ b/testsuite/tests/ghc-regress/mdo/should_fail/mdofail001.stderr @@ -2,10 +2,10 @@ mdofail001.hs:1:12: Warning: -XRecursiveDo is deprecated: use -XDoRec or pragma {-# LANGUAGE DoRec #-} instead -mdofail001.hs:10:32: +mdofail001.hs:10:36: No instance for (Num Char) - arising from the literal `1' + arising from the literal `3' Possible fix: add an instance declaration for (Num Char) - In the expression: 1 + In the expression: 3 In the first argument of `l', namely `[1, 2, 3]' In the expression: l [1, 2, 3] diff --git a/testsuite/tests/ghc-regress/module/mod47.stderr b/testsuite/tests/ghc-regress/module/mod47.stderr index 067bb303af..1b8fd0b411 100644 --- a/testsuite/tests/ghc-regress/module/mod47.stderr +++ b/testsuite/tests/ghc-regress/module/mod47.stderr @@ -1,7 +1,9 @@ mod47.hs:6:10: - Could not deduce (Num a) from the context (Eq a, Enum a) + Could not deduce (Num a) arising from the superclasses of an instance declaration + from the context (Eq a, Enum a) + bound by the instance declaration at mod47.hs:6:10-34 Possible fix: add (Num a) to the context of the instance declaration In the instance declaration for `Bar [a]' diff --git a/testsuite/tests/ghc-regress/module/mod54.stderr b/testsuite/tests/ghc-regress/module/mod54.stderr index 373ec97439..8b41e7f8bc 100644 --- a/testsuite/tests/ghc-regress/module/mod54.stderr +++ b/testsuite/tests/ghc-regress/module/mod54.stderr @@ -2,7 +2,8 @@ mod54.hs:3:22: No instance for (Eq T) arising from the 'deriving' clause of a data type declaration - Possible fix: add an instance declaration for (Eq T) - Alternatively, use a standalone 'deriving instance' declaration, - so you can specify the instance context yourself + Possible fix: + add an instance declaration for (Eq T) + or use a standalone 'deriving instance' declaration, + so you can specify the instance context yourself When deriving the instance for (Ord T) diff --git a/testsuite/tests/ghc-regress/parser/should_fail/readFail003.stderr b/testsuite/tests/ghc-regress/parser/should_fail/readFail003.stderr index d0b251faac..fe8ce00577 100644 --- a/testsuite/tests/ghc-regress/parser/should_fail/readFail003.stderr +++ b/testsuite/tests/ghc-regress/parser/should_fail/readFail003.stderr @@ -1,7 +1,7 @@ readFail003.hs:4:27: Occurs check: cannot construct the infinite type: - t = (t, [a], [a1]) + t0 = (t0, [a0], [a1]) In the expression: a In a pattern binding: ~(a, b, c) @@ -13,7 +13,7 @@ readFail003.hs:4:27: readFail003.hs:5:27: Occurs check: cannot construct the infinite type: - t = (t, [a], [a1]) + t0 = (t0, [a0], [a1]) In the expression: a In a pattern binding: ~(a, b, c) @@ -25,7 +25,7 @@ readFail003.hs:5:27: readFail003.hs:6:27: Occurs check: cannot construct the infinite type: - t = (t, [a], [a1]) + t0 = (t0, [a0], [a1]) In the expression: a In a pattern binding: ~(a, b, c) diff --git a/testsuite/tests/ghc-regress/perf/compiler/all.T b/testsuite/tests/ghc-regress/perf/compiler/all.T index ea26ca5890..56f74517c3 100644 --- a/testsuite/tests/ghc-regress/perf/compiler/all.T +++ b/testsuite/tests/ghc-regress/perf/compiler/all.T @@ -114,8 +114,8 @@ test('T3064', 80000000)), # expected value: 145038576 (amd64/Linux): if_wordsize(64, - compiler_stats_num_field('bytes allocated', 140000000, - 170000000)), + compiler_stats_num_field('bytes allocated', 120000000, + 140000000)), # expected value: 3404504 (x86/OSX): if_wordsize(32, compiler_stats_num_field('max_bytes_used', 3000000, diff --git a/testsuite/tests/ghc-regress/rebindable/rebindable6.stderr b/testsuite/tests/ghc-regress/rebindable/rebindable6.stderr index 526e739753..ceafd08a01 100644 --- a/testsuite/tests/ghc-regress/rebindable/rebindable6.stderr +++ b/testsuite/tests/ghc-regress/rebindable/rebindable6.stderr @@ -1,9 +1,9 @@ rebindable6.hs:106:17: - No instance for (HasSeq (IO a -> t -> IO b)) + No instance for (HasSeq (IO a -> t0 -> IO b)) arising from a do statement Possible fix: - add an instance declaration for (HasSeq (IO a -> t -> IO b)) + add an instance declaration for (HasSeq (IO a -> t0 -> IO b)) In a stmt of a 'do' expression: f In the expression: do { f; @@ -16,13 +16,27 @@ rebindable6.hs:106:17: return b } rebindable6.hs:107:17: - No instances for (HasFail ([Prelude.Char] -> t1), - HasBind (IO (Maybe b) -> (Maybe b -> t1) -> t)) + No instance for (HasBind (IO (Maybe b) -> (Maybe b -> t1) -> t0)) arising from a do statement Possible fix: - add instance declarations for - (HasFail ([Prelude.Char] -> t1), - HasBind (IO (Maybe b) -> (Maybe b -> t1) -> t)) + add an instance declaration for + (HasBind (IO (Maybe b) -> (Maybe b -> t1) -> t0)) + In a stmt of a 'do' expression: Just (b :: b) <- g + In the expression: + do { f; + Just (b :: b) <- g; + return b } + In an equation for `test_do': + test_do f g + = do { f; + Just (b :: b) <- g; + return b } + +rebindable6.hs:107:17: + No instance for (HasFail ([Prelude.Char] -> t1)) + arising from a do statement + Possible fix: + add an instance declaration for (HasFail ([Prelude.Char] -> t1)) In a stmt of a 'do' expression: Just (b :: b) <- g In the expression: do { f; diff --git a/testsuite/tests/ghc-regress/simplCore/should_compile/rule2.stderr b/testsuite/tests/ghc-regress/simplCore/should_compile/rule2.stderr index 78955269ba..2bdb17fa4a 100644 --- a/testsuite/tests/ghc-regress/simplCore/should_compile/rule2.stderr +++ b/testsuite/tests/ghc-regress/simplCore/should_compile/rule2.stderr @@ -24,9 +24,9 @@ Total ticks: 11 1 m 1 a 1 m - 1 b - 1 m 1 a + 1 m + 1 b 8 SimplifierDone 8 diff --git a/testsuite/tests/ghc-regress/simplCore/should_compile/simpl017.stderr b/testsuite/tests/ghc-regress/simplCore/should_compile/simpl017.stderr index 7bbcf68ff3..1fa19d1139 100644 --- a/testsuite/tests/ghc-regress/simplCore/should_compile/simpl017.stderr +++ b/testsuite/tests/ghc-regress/simplCore/should_compile/simpl017.stderr @@ -1,7 +1,7 @@ simpl017.hs:44:12: Couldn't match expected type `forall v. [E m i] -> E' v m a' - with actual type `[E m i] -> E' v m a' + with actual type `[E m i] -> E' v0 m a' In the first argument of `return', namely `f' In the expression: return f In the first argument of `E', namely @@ -12,9 +12,9 @@ simpl017.hs:44:12: return f })' simpl017.hs:63:5: - Couldn't match expected type `t -> t1' - with actual type `forall v. [E m Int] -> E' v m Int' + Couldn't match expected type `t0 -> t1' + with actual type `forall v. [E m0 Int] -> E' v m0 Int' The function `a' is applied to one argument, - but its type `forall v. [E m Int] -> E' v m Int' has none + but its type `forall v. [E m0 Int] -> E' v m0 Int' has none In the first argument of `plus', namely `a [one]' In the expression: a [one] `plus` a [one] diff --git a/testsuite/tests/ghc-regress/th/T2632.hs b/testsuite/tests/ghc-regress/th/T2632.hs index 5d10fcf498..31429e28d9 100644 --- a/testsuite/tests/ghc-regress/th/T2632.hs +++ b/testsuite/tests/ghc-regress/th/T2632.hs @@ -6,10 +6,11 @@ module MkData where import Language.Haskell.TH +op :: Num v => v -> v -> v op a b = a + b decl1 = [d| func = 0 `op` 3 |] -decl2 = [d| op x = x +decl2 = [d| op x y = x func = 0 `op` 3 |] diff --git a/testsuite/tests/ghc-regress/th/TH_tf2.hs b/testsuite/tests/ghc-regress/th/TH_tf2.hs index d35e6ec275..94be291324 100644 --- a/testsuite/tests/ghc-regress/th/TH_tf2.hs +++ b/testsuite/tests/ghc-regress/th/TH_tf2.hs @@ -2,6 +2,7 @@ module TH_tf2 where +{- $( [d| class C a where data T a foo :: Bool -> T a |] ) @@ -13,11 +14,12 @@ $( [d| instance C Int where $( [d| instance C Float where data T Float = TFloat {flag :: Bool} foo b = TFloat {flag = b && b} |] ) +-} -$( [d| class D a where +class D a where type S a - bar :: S a -> Int |] ) + bar :: S a -> Int -$( [d| instance D Int where +instance D Int where type S Int = Bool - bar c = if c then 1 else 2 |] ) + bar c = if c then 1 else 2 diff --git a/testsuite/tests/ghc-regress/typecheck/should_compile/FD1.stderr b/testsuite/tests/ghc-regress/typecheck/should_compile/FD1.stderr index 5eebbaeb81..6f98877b84 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_compile/FD1.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_compile/FD1.stderr @@ -1,8 +1,12 @@ FD1.hs:16:1: Could not deduce (a ~ (Int -> Int)) - from the context (E a (Int -> Int)) + from the context (E a (Int -> Int)) + bound by the type signature for + plus :: E a (Int -> Int) => Int -> a + at FD1.hs:16:1-16 `a' is a rigid type variable bound by - the type signature for `plus' at FD1.hs:15:12 + the type signature for plus :: E a (Int -> Int) => Int -> a + at FD1.hs:16:1 The equation(s) for `plus' have two arguments, but its type `Int -> a' has only one diff --git a/testsuite/tests/ghc-regress/typecheck/should_compile/FD2.stderr b/testsuite/tests/ghc-regress/typecheck/should_compile/FD2.stderr index 88e97b6f18..618c361f49 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_compile/FD2.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_compile/FD2.stderr @@ -1,11 +1,25 @@ -FD2.hs:26:34: - Could not deduce (e ~ e1) - from the context (Foldable a, Elem a e, Elem a e1) - `e' is a rigid type variable bound by - the type signature for `foldr1' at FD2.hs:21:20 +FD2.hs:26:38: + Could not deduce (e1 ~ e) + from the context (Foldable a) + bound by the class declaration for `Foldable' + at FD2.hs:(17,1)-(26,39) + or from (Elem a e) + bound by the type signature for + foldr1 :: Elem a e => (e -> e -> e) -> a -> e + at FD2.hs:(22,3)-(26,39) + or from (Elem a e1) + bound by the type signature for + mf :: Elem a e1 => e1 -> Maybe e1 -> Maybe e1 + at FD2.hs:(25,12)-(26,39) `e1' is a rigid type variable bound by - the type signature for `mf' at FD2.hs:24:25 + the type signature for + mf :: Elem a e1 => e1 -> Maybe e1 -> Maybe e1 + at FD2.hs:25:12 + `e' is a rigid type variable bound by + the type signature for + foldr1 :: Elem a e => (e -> e -> e) -> a -> e + at FD2.hs:22:3 + In the second argument of `f', namely `y' In the first argument of `Just', namely `(f x y)' In the expression: Just (f x y) - In an equation for `mf': mf x (Just y) = Just (f x y) diff --git a/testsuite/tests/ghc-regress/typecheck/should_compile/FD3.stderr b/testsuite/tests/ghc-regress/typecheck/should_compile/FD3.stderr index 29bbd84dc8..5e8a4ee164 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_compile/FD3.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_compile/FD3.stderr @@ -2,7 +2,8 @@ FD3.hs:15:15: Couldn't match type `a' with `(String, a)' `a' is a rigid type variable bound by - the type signature for `translate' at FD3.hs:14:23 + the type signature for translate :: (String, a) -> A a + at FD3.hs:15:1 When using functional dependencies to combine MkA a a, arising from the dependency `a -> b' @@ -10,10 +11,3 @@ FD3.hs:15:15: MkA (String, a) a, arising from a use of `mkA' at FD3.hs:15:15-17 In the expression: mkA a In an equation for `translate': translate a = mkA a - -FD3.hs:15:15: - No instance for (MkA (String, a1) a1) - arising from a use of `mkA' - Possible fix: add an instance declaration for (MkA (String, a1) a1) - In the expression: mkA a - In an equation for `translate': translate a = mkA a diff --git a/testsuite/tests/ghc-regress/typecheck/should_compile/T2494.stderr b/testsuite/tests/ghc-regress/typecheck/should_compile/T2494.stderr index 391b9494b7..b522833af2 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_compile/T2494.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_compile/T2494.stderr @@ -1,20 +1,22 @@ -T2494.hs:15:14: - Couldn't match type `b' with `a' - `b' is a rigid type variable bound by - the type signature for `g' at T2494.hs:14:46 +T2494.hs:15:7: + Couldn't match type `a' with `b' `a' is a rigid type variable bound by - the type signature for `f' at T2494.hs:13:46 - In the first argument of `foo', namely `g' - In the second argument of `foo', namely `(foo g x)' + the RULE "foo/foo" at T2494.hs:13:46 + `b' is a rigid type variable bound by + the RULE "foo/foo" at T2494.hs:14:46 + Expected type: Maybe (m b) -> Maybe (m b) + Actual type: Maybe (m a) -> Maybe (m a) + In the first argument of `foo', namely `f' In the expression: foo f (foo g x) T2494.hs:15:30: Couldn't match type `b' with `a' `b' is a rigid type variable bound by - the type signature for `g' at T2494.hs:14:46 + the RULE "foo/foo" at T2494.hs:14:46 `a' is a rigid type variable bound by - the type signature for `f' at T2494.hs:13:46 + the RULE "foo/foo" at T2494.hs:13:46 + Expected type: Maybe (m b) -> Maybe (m a) + Actual type: Maybe (m b) -> Maybe (m b) In the second argument of `(.)', namely `g' In the first argument of `foo', namely `(f . g)' - In the expression: foo (f . g) x diff --git a/testsuite/tests/ghc-regress/typecheck/should_compile/all.T b/testsuite/tests/ghc-regress/typecheck/should_compile/all.T index cb92f5eea7..7c55d07693 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_compile/all.T +++ b/testsuite/tests/ghc-regress/typecheck/should_compile/all.T @@ -227,7 +227,10 @@ test('tc212', normal, compile, ['']) test('tc213', normal, compile, ['']) test('tc214', normal, compile, ['']) test('tc215', normal, compile, ['']) -test('tc216', normal, compile_fail, ['']) + +# This one is very delicate, but I don't think the result really matters +test('tc216', normal, compile, ['']) + test('tc217', reqlib('mtl'), compile, ['']) test('tc218', normal, compile, ['']) test('tc219', normal, compile, ['']) diff --git a/testsuite/tests/ghc-regress/typecheck/should_compile/tc216.stderr b/testsuite/tests/ghc-regress/typecheck/should_compile/tc216.stderr index 8dca19202b..e69de29bb2 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_compile/tc216.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_compile/tc216.stderr @@ -1,28 +0,0 @@ - -tc216.hs:38:12: - Context reduction stack overflow; size = 21 - Use -fcontext-stack=N to increase stack size to N - $dBar :: Bar y19 z - $dBar :: Bar y18 z - $dBar :: Bar y17 z - $dBar :: Bar y16 z - $dBar :: Bar y15 z - $dBar :: Bar y14 z - $dBar :: Bar y13 z - $dBar :: Bar y12 z - $dBar :: Bar y11 z - $dBar :: Bar y10 z - $dBar :: Bar y9 z - $dBar :: Bar y8 z - $dBar :: Bar y7 z - $dBar :: Bar y6 z - $dBar :: Bar y5 z - $dBar :: Bar y4 z - $dBar :: Bar y3 z - $dBar :: Bar y2 z - $dBar :: Bar y1 z - $dBar :: Bar y z - $dBar :: Bar y20 z - In the expression: bar (foo x) z - In an equation for `bar': bar x z = bar (foo x) z - In the instance declaration for `Bar x z' diff --git a/testsuite/tests/ghc-regress/typecheck/should_compile/tc231.stderr b/testsuite/tests/ghc-regress/typecheck/should_compile/tc231.stderr index a3891546b2..4f8745519b 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_compile/tc231.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_compile/tc231.stderr @@ -1,7 +1,7 @@ TYPE SIGNATURES - foo :: forall b t t1. - Zork t (Z [Char]) b => - Q t (Z [Char]) t1 -> ST t () + foo :: forall s b chain. + Zork s (Z [Char]) b => + Q s (Z [Char]) chain -> ST s () s :: forall t t1. Q t (Z [Char]) t1 -> Q t (Z [Char]) t1 TYPE CONSTRUCTORS data Q s a chain diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/FrozenErrorTests.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/FrozenErrorTests.stderr index e944c3f6df..bbe8c55bec 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/FrozenErrorTests.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/FrozenErrorTests.stderr @@ -2,16 +2,22 @@ FrozenErrorTests.hs:11:1: Couldn't match type `a' with `T a' `a' is a rigid type variable bound by - the type signature for `foo' at FrozenErrorTests.hs:10:15 - Inaccessible code in the type signature for `foo' + the type signature for foo :: a ~ T a => a -> a + at FrozenErrorTests.hs:11:1 + Inaccessible code in + the type signature for foo :: a ~ T a => a -> a FrozenErrorTests.hs:14:12: Couldn't match type `b' with `T b' `b' is a rigid type variable bound by - a pattern with constructor MkT2 :: forall a b. b ~ T b => b -> T a - at FrozenErrorTests.hs:14:12 + a pattern with constructor + MkT2 :: forall a b. b ~ T b => b -> T a, + in a case alternative + at FrozenErrorTests.hs:14:12 Inaccessible code in - a pattern with constructor `MkT2', in a case alternative + a pattern with constructor + MkT2 :: forall a b. b ~ T b => b -> T a, + in a case alternative In the pattern: MkT2 y In a case alternative: MkT2 y -> () In the expression: case x of { MkT2 y -> () } @@ -19,67 +25,49 @@ FrozenErrorTests.hs:14:12: FrozenErrorTests.hs:19:12: Couldn't match type `Int' with `Bool' Inaccessible code in - a pattern with constructor `MkT3', in a case alternative + a pattern with constructor + MkT3 :: forall a. a ~ Bool => T a, + in a case alternative In the pattern: MkT3 In a case alternative: MkT3 -> () In the expression: case x of { MkT3 -> () } FrozenErrorTests.hs:33:9: - Occurs check: cannot construct the infinite type: a = [a] - Expected type: [a] - Actual type: F a Bool + Occurs check: cannot construct the infinite type: a0 = [a0] In the expression: goo1 False undefined In an equation for `test1': test1 = goo1 False undefined FrozenErrorTests.hs:36:15: - Couldn't match type `Int' with `[Int]' - Expected type: [[Int]] - Actual type: F [Int] Bool + Couldn't match type `[Int]' with `[[Int]]' In the first argument of `goo2', namely `(goo1 False undefined)' In the expression: goo2 (goo1 False undefined) In an equation for `test2': test2 = goo2 (goo1 False undefined) FrozenErrorTests.hs:37:9: Couldn't match type `Int' with `[Int]' - Expected type: [[Int]] - Actual type: F [Int] Bool In the expression: goo1 False (goo2 undefined) In an equation for `test3': test3 = goo1 False (goo2 undefined) FrozenErrorTests.hs:52:15: - Occurs check: cannot construct the infinite type: c = T2 (T2 c c) c - Expected type: T2 (M (T2 (T2 c c) c)) (T2 (T2 c c) c) - Actual type: F (T2 (T2 c c) c) Bool - In the first argument of `goo4', namely `(goo3 False undefined)' - In the expression: goo4 (goo3 False undefined) - In an equation for `test4': test4 = goo4 (goo3 False undefined) - -FrozenErrorTests.hs:52:15: - Occurs check: cannot construct the infinite type: c = T2 (T2 c c) c - Expected type: T2 (M (T2 (T2 c c) c)) (T2 (T2 c c) c) - Actual type: F (T2 (T2 c c) c) Bool + Couldn't match type `T2 (T2 c0 c0) c0' + with `T2 (M (T2 (T2 c0 c0) c0)) (T2 (T2 c0 c0) c0)' In the first argument of `goo4', namely `(goo3 False undefined)' In the expression: goo4 (goo3 False undefined) In an equation for `test4': test4 = goo4 (goo3 False undefined) -FrozenErrorTests.hs:52:15: - Couldn't match type `T2 c' with `M' - Expected type: T2 (M (T2 (T2 c c) c)) (T2 (T2 c c) c) - Actual type: F (T2 (T2 c c) c) Bool - In the first argument of `goo4', namely `(goo3 False undefined)' - In the expression: goo4 (goo3 False undefined) - In an equation for `test4': test4 = goo4 (goo3 False undefined) +FrozenErrorTests.hs:53:9: + Couldn't match type `T2 c0' with `M' + In the expression: goo3 False (goo4 undefined) + In an equation for `test5': test5 = goo3 False (goo4 undefined) FrozenErrorTests.hs:53:9: - Couldn't match type `T2 c c' with `M (T2 (T2 c c) c)' - Expected type: T2 (M (T2 (T2 c c) c)) (T2 (T2 c c) c) - Actual type: F (T2 (T2 c c) c) Bool + Occurs check: cannot construct the infinite type: + c0 = T2 (T2 c0 c0) c0 In the expression: goo3 False (goo4 undefined) In an equation for `test5': test5 = goo3 False (goo4 undefined) FrozenErrorTests.hs:53:9: - Occurs check: cannot construct the infinite type: c = T2 (T2 c c) c - Expected type: T2 (M (T2 (T2 c c) c)) (T2 (T2 c c) c) - Actual type: F (T2 (T2 c c) c) Bool + Occurs check: cannot construct the infinite type: + c0 = T2 (T2 c0 c0) c0 In the expression: goo3 False (goo4 undefined) In an equation for `test5': test5 = goo3 False (goo4 undefined) diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/IPFail.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/IPFail.stderr index 7174208548..7d0d8980af 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/IPFail.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/IPFail.stderr @@ -1,9 +1,12 @@ IPFail.hs:6:18: - Could not deduce (Num Bool) from the context (?x::Int) - arising from the literal `5' + Could not deduce (Num Bool) arising from the literal `5' + from the context (?x::Int) + bound by the type signature for f0 :: (?x::Int) => () -> Bool + at IPFail.hs:6:1-24 Possible fix: - add (Num Bool) to the context of the type signature for `f0' + add (Num Bool) to the context of + the type signature for f0 :: (?x::Int) => () -> Bool or add an instance declaration for (Num Bool) In the expression: 5 In the expression: let ?x = 5 in ?x diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/T1899.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/T1899.stderr index 0be35473a5..4769b2d96c 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/T1899.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/T1899.stderr @@ -1,8 +1,15 @@ -T1899.hs:12:29: - Couldn't match type `a1' with `Proposition a' - `a1' is a rigid type variable bound by - the type signature for `transRHS' at T1899.hs:9:15 - In the first argument of `Prop', namely `(Auxiliary undefined)' - In the expression: Prop (Auxiliary undefined) - In the expression: [Prop (Auxiliary undefined)] +T1899.hs:13:13: + Couldn't match type `a' with `Proposition a0' + `a' is a rigid type variable bound by + the type signature for transRHS :: [a] -> Int -> Constraint a + at T1899.hs:10:2 + Expected type: Constraint a + Actual type: Constraint (Proposition a0) + In the expression: + Formula $ [[Prop (Auxiliary varSet), Prop (Auxiliary varSet)]] + In the expression: + if b < 0 then + Formula [[Prop (Auxiliary undefined)]] + else Formula + $ [[Prop (Auxiliary varSet), Prop (Auxiliary varSet)]] diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/T2414.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/T2414.stderr index 1250dd86a1..030bf6e52a 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/T2414.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/T2414.stderr @@ -1,6 +1,7 @@ T2414.hs:9:13: - Occurs check: cannot construct the infinite type: a = (Bool, a) + Occurs check: cannot construct the infinite type: b0 = (Bool, b0) + Expected type: b0 -> Maybe (Bool, b0) + Actual type: b0 -> Maybe b0 In the first argument of `unfoldr', namely `Just' In the expression: unfoldr Just - In an equation for `f': f = unfoldr Just diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/T2688.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/T2688.stderr index 12dd4749e5..de91620078 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/T2688.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/T2688.stderr @@ -1,6 +1,9 @@ T2688.hs:8:22: - Could not deduce (s ~ v) from the context (VectorSpace v s) + Could not deduce (s ~ v) + from the context (VectorSpace v s) + bound by the class declaration for `VectorSpace' + at T2688.hs:(5,1)-(8,23) `s' is a rigid type variable bound by the class declaration for `VectorSpace' at T2688.hs:5:21 `v' is a rigid type variable bound by diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/T2714.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/T2714.stderr index 677e5f4698..da355fc738 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/T2714.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/T2714.stderr @@ -1,7 +1,22 @@ T2714.hs:8:5: - Couldn't match type `a' with `f b' + Couldn't match type `a' with `f0 b' `a' is a rigid type variable bound by - the type signature for `f' at T2714.hs:7:8 + the type signature for f :: ((a -> b) -> b) -> forall c. c -> a + at T2714.hs:8:1 + Expected type: ((a -> b) -> b) -> c -> a + Actual type: ((a -> b) -> b) -> f0 (a -> b) -> f0 b + In the expression: ffmap + In an equation for `f': f = ffmap + +T2714.hs:8:5: + Couldn't match type `c' with `f0 (f0 b -> b)' + `c' is a rigid type variable bound by + the type signature for f :: ((a -> b) -> b) -> c -> a + at T2714.hs:8:1 + Expected type: c + Actual type: f0 (a -> b) + Expected type: ((a -> b) -> b) -> c -> a + Actual type: ((a -> b) -> b) -> f0 (a -> b) -> f0 b In the expression: ffmap In an equation for `f': f = ffmap diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/T2846b.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/T2846b.stderr index 90e92e9f1d..79527c15b7 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/T2846b.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/T2846b.stderr @@ -1,7 +1,7 @@ T2846b.hs:5:5: - No instance for (Show (Num a => a)) + No instance for (Show (Num a0 => a0)) arising from a use of `show' - Possible fix: add an instance declaration for (Show (Num a => a)) + Possible fix: add an instance declaration for (Show (Num a0 => a0)) In the expression: show ([1, 2, 3] :: [Num a => a]) In an equation for `f': f = show ([1, 2, 3] :: [Num a => a]) diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/T3102.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/T3102.stderr index 0e987aa2cb..cf3483870d 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/T3102.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/T3102.stderr @@ -1,8 +1,9 @@ T3102.hs:11:12: - Couldn't match type `a1' with `(?p::Int) => a' - `a1' is a rigid type variable bound by - the polymorphic type `forall a1. a1 -> String' at T3102.hs:11:10 + Couldn't match type `a' with `(?p::Int) => a0' + `a' is a rigid type variable bound by + a type expected by the context: a -> String at T3102.hs:11:10 + Expected type: a -> String + Actual type: ((?p::Int) => a0) -> String In the first argument of `f', namely `t' In the expression: f t - In an equation for `result': result = f t diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/T3613.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/T3613.stderr index 94273b1bdb..ad79ac701d 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/T3613.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/T3613.stderr @@ -1,17 +1,17 @@ T3613.hs:14:20: - Couldn't match expected type `Maybe a' with actual type `IO ()' + Couldn't match expected type `Maybe a0' with actual type `IO ()' In the first argument of `(>>)', namely `bar' In the first argument of `fooThen', namely `(bar >> undefined)' In the expression: fooThen (bar >> undefined) T3613.hs:17:24: - Couldn't match expected type `Maybe a' with actual type `IO ()' + Couldn't match expected type `Maybe a0' with actual type `IO ()' In a stmt of a 'do' expression: bar In the first argument of `fooThen', namely - `(do { bar; - undefined })' + `(do { bar; + undefined })' In the expression: - fooThen - (do { bar; - undefined }) + fooThen + (do { bar; + undefined }) diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/T3950.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/T3950.stderr index 9160985cbf..1c326ad43e 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/T3950.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/T3950.stderr @@ -1,7 +1,7 @@ T3950.hs:15:13: - Couldn't match expected type `Id p' with actual type `Id p x' - Expected type: w (Id p) - Actual type: Sealed (Id p x) + Couldn't match expected type `Id p' with actual type `Id p x0' + Expected type: w (Id p) + Actual type: Sealed (Id p x0) In the first argument of `Just', namely `rp'' In the expression: Just rp' diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail002.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail002.stderr index 7cbaf0e547..12a77d0cc8 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail002.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail002.stderr @@ -1,5 +1,5 @@ tcfail002.hs:4:7: - Occurs check: cannot construct the infinite type: t = [t] + Occurs check: cannot construct the infinite type: t0 = [t0] In the expression: z In an equation for `c': c z = z diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail004.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail004.stderr index 8ef0cb2447..5f0408880c 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail004.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail004.stderr @@ -1,6 +1,6 @@ tcfail004.hs:3:9: - Couldn't match expected type `(t, t1)' + Couldn't match expected type `(t0, t1)' with actual type `(t2, t3, t4)' In the expression: (1, 2, 3) In a pattern binding: (f, g) = (1, 2, 3) diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail005.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail005.stderr index 483c542a76..8a158f5c8d 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail005.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail005.stderr @@ -1,5 +1,5 @@ tcfail005.hs:3:9: - Couldn't match expected type `[t]' with actual type `(t1, t2)' + Couldn't match expected type `[t0]' with actual type `(t1, t2)' In the expression: (1, 'a') In a pattern binding: (h : i) = (1, 'a') diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail006.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail006.stderr index 83d53e9221..b2a3f5b04a 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail006.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail006.stderr @@ -1,8 +1,8 @@ -tcfail006.hs:4:24: +tcfail006.hs:5:20: No instance for (Num Bool) arising from the literal `1' Possible fix: add an instance declaration for (Num Bool) In the expression: 1 - In the expression: (True, 1) - In a case alternative: True -> (True, 1) + In the expression: (1, True) + In a case alternative: False -> (1, True) diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail007.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail007.stderr index 6f50df2877..3545f8644f 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail007.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail007.stderr @@ -1,8 +1,9 @@ -tcfail007.hs:3:15: +tcfail007.hs:3:16: No instance for (Num Bool) - arising from a use of `+' + arising from the literal `1' Possible fix: add an instance declaration for (Num Bool) + In the second argument of `(+)', namely `1' In the expression: x + 1 In an equation for `n': n x diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail008.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail008.stderr index 68a1b0c894..2d31ee6034 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail008.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail008.stderr @@ -1,8 +1,8 @@ tcfail008.hs:3:7: - No instance for (Num [a]) + No instance for (Num [a0]) arising from the literal `2' - Possible fix: add an instance declaration for (Num [a]) + Possible fix: add an instance declaration for (Num [a0]) In the second argument of `(:)', namely `2' In the expression: 1 : 2 In an equation for `o': o = 1 : 2 diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail010.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail010.stderr index f9cbd43e91..34a52ed1d2 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail010.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail010.stderr @@ -1,8 +1,8 @@ -tcfail010.hs:3:17: - No instance for (Num [t]) - arising from a use of `+' - Possible fix: add an instance declaration for (Num [t]) +tcfail010.hs:3:18: + No instance for (Num [t0]) + arising from the literal `2' + Possible fix: add an instance declaration for (Num [t0]) + In the second argument of `(+)', namely `2' In the expression: z + 2 In the expression: \ (y : z) -> z + 2 - In an equation for `q': q = \ (y : z) -> z + 2 diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail012.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail012.stderr index 96eb26a5aa..7fe9b18d47 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail012.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail012.stderr @@ -1,5 +1,5 @@ tcfail012.hs:3:8: - Couldn't match expected type `Bool' with actual type `[a]' + Couldn't match expected type `Bool' with actual type `[a0]' In the expression: [] In a pattern binding: True = [] diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail013.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail013.stderr index 91f2751991..439a663c5c 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail013.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail013.stderr @@ -1,5 +1,5 @@ tcfail013.hs:4:3: - Couldn't match expected type `[t]' with actual type `Bool' + Couldn't match expected type `[t0]' with actual type `Bool' In the pattern: True In an equation for `f': f True = 2 diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail014.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail014.stderr index 0fc72f5718..d46bf92db3 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail014.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail014.stderr @@ -1,6 +1,6 @@ tcfail014.hs:5:33: - Occurs check: cannot construct the infinite type: t1 = t1 -> t + Occurs check: cannot construct the infinite type: t1 = t1 -> t0 In the first argument of `z', namely `z' In the expression: z z In an equation for `h': h z = z z diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail015.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail015.stderr index 0c21fe3888..52dc7956cd 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail015.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail015.stderr @@ -1,7 +1,10 @@ -tcfail015.hs:7:13: +tcfail015.hs:9:39: No instance for (Num Bool) - arising from the literal `2' + arising from the literal `4' Possible fix: add an instance declaration for (Num Bool) - In the expression: 2 - In an equation for `g': g (ANull) = 2 + In the expression: 4 + In an equation for `g': + g (ANode b (ANode c d)) + | b = c + 1 + | otherwise = 4 diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail016.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail016.stderr index 8db38b4c9e..6420918b37 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail016.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail016.stderr @@ -1,6 +1,7 @@ -
-tcfail016.hs:9:20:
- Couldn't match expected type `Expr t' with actual type `AnnExpr t'
- In the first argument of `g', namely `e1'
- In the first argument of `(++)', namely `(g e1)'
- In the expression: (g e1) ++ (g e2)
+ +tcfail016.hs:9:20: + Couldn't match expected type `Expr t0' + with actual type `AnnExpr t0' + In the first argument of `g', namely `e1' + In the first argument of `(++)', namely `(g e1)' + In the expression: (g e1) ++ (g e2) diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail017.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail017.stderr index ee4c8edbbc..4f09814afa 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail017.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail017.stderr @@ -1,7 +1,9 @@ tcfail017.hs:10:10: - Could not deduce (C [a]) from the context (B a) + Could not deduce (C [a]) arising from the superclasses of an instance declaration + from the context (B a) + bound by the instance declaration at tcfail017.hs:10:10-23 Possible fix: add (C [a]) to the context of the instance declaration or add an instance declaration for (C [a]) diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail018.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail018.stderr index dee85bb203..67ee509537 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail018.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail018.stderr @@ -1,7 +1,7 @@ tcfail018.hs:5:10: - No instance for (Num [t]) + No instance for (Num [t0]) arising from the literal `1' - Possible fix: add an instance declaration for (Num [t]) + Possible fix: add an instance declaration for (Num [t0]) In the expression: 1 In a pattern binding: (a : []) = 1 diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail019.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail019.stderr index f40e0f513e..d63961b8b6 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail019.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail019.stderr @@ -1,6 +1,6 @@ - -tcfail019.hs:18:10: - No instances for (C [a], B [a]) - arising from the superclasses of an instance declaration - Possible fix: add instance declarations for (C [a], B [a]) - In the instance declaration for `D [a]' +
+tcfail019.hs:18:10:
+ No instances for (B [a], C [a])
+ arising from the superclasses of an instance declaration
+ Possible fix: add instance declarations for (B [a], C [a])
+ In the instance declaration for `D [a]'
diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail020.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail020.stderr index d559d6581e..3e0df9e42b 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail020.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail020.stderr @@ -1,7 +1,9 @@ tcfail020.hs:10:10: - Could not deduce (A [a]) from the context (A a) + Could not deduce (A [a]) arising from the superclasses of an instance declaration + from the context (A a) + bound by the instance declaration at tcfail020.hs:10:10-23 Possible fix: add (A [a]) to the context of the instance declaration or add an instance declaration for (A [a]) diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail028.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail028.stderr index 4113f0bca7..7ad9ecbb23 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail028.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail028.stderr @@ -1,7 +1,7 @@ tcfail028.hs:4:17: `A a' is not applied to enough type arguments - Expected kind `?', but `A a' has kind `k -> *' + Expected kind `?', but `A a' has kind `k0 -> *' In the type `A a' In the definition of data constructor `B' In the data type declaration for `A' diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail032.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail032.stderr index b0bafe9482..8cb4c1b99a 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail032.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail032.stderr @@ -1,10 +1,14 @@ tcfail032.hs:14:8: - Couldn't match type `t' with `a -> Int' - because type variable `a' would escape its scope - This (rigid, skolem) type variable is bound by - an expression type signature - The following variables have types that mention t - x :: t (bound at tcfail032.hs:14:3) + Could not deduce (t ~ (a1 -> Int)) + from the context (Eq a) + bound by the inferred type of f :: Eq a => t -> a -> Int + at tcfail032.hs:14:1-31 + or from (Eq a1) + bound by an expression type signature: Eq a1 => a1 -> Int + at tcfail032.hs:14:8-30 + `t' is a rigid type variable bound by + the inferred type of f :: Eq a => t -> a -> Int + at tcfail032.hs:14:1 In the expression: (x :: Eq a => a -> Int) In an equation for `f': f x = (x :: Eq a => a -> Int) diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail033.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail033.stderr index b15afe7037..1d7a51d4c1 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail033.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail033.stderr @@ -1,6 +1,6 @@ tcfail033.hs:4:12: - Occurs check: cannot construct the infinite type: t = (t, t1) + Occurs check: cannot construct the infinite type: t0 = (t0, t1) In the expression: x In a stmt of a list comprehension: (x, y) <- buglet In the expression: [x | (x, y) <- buglet] diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail034.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail034.stderr index 323d9a18da..db8e148eb9 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail034.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail034.stderr @@ -1,9 +1,12 @@ tcfail034.hs:17:13: - Could not deduce (Integral a) from the context (Num a, Eq a) - arising from a use of `mod' + Could not deduce (Integral a) arising from a use of `mod' + from the context (Num a, Eq a) + bound by the type signature for test :: (Num a, Eq a) => a -> Bool + at tcfail034.hs:17:1-25 Possible fix: - add (Integral a) to the context of the type signature for `test' + add (Integral a) to the context of + the type signature for test :: (Num a, Eq a) => a -> Bool In the first argument of `(==)', namely `(x `mod` 3)' In the expression: (x `mod` 3) == 0 In an equation for `test': test x = (x `mod` 3) == 0 diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail040.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail040.stderr index 45eedc2e78..8d30ec57a2 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail040.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail040.stderr @@ -1,8 +1,8 @@ -tcfail040.hs:19:5: - Ambiguous type variable `a' in the constraint: - (ORD a) arising from a use of `<<' +tcfail040.hs:19:14: + Ambiguous type variable `a0' in the constraint: + (ORD a0) arising from a use of `<<' Probable fix: add a type signature that fixes these type variable(s) - In the first argument of `(===)', namely `(<<)' + In the second argument of `(===)', namely `(<<)' In the expression: (<<) === (<<) In an equation for `f': f = (<<) === (<<) diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail042.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail042.stderr index 0158066a04..76031bb221 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail042.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail042.stderr @@ -1,7 +1,9 @@ tcfail042.hs:15:10: - Could not deduce (Num a) from the context (Eq a, Show a) + Could not deduce (Num a) arising from the superclasses of an instance declaration + from the context (Eq a, Show a) + bound by the instance declaration at tcfail042.hs:15:10-34 Possible fix: add (Num a) to the context of the instance declaration In the instance declaration for `Bar [a]' diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail043.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail043.stderr index 94131cb69d..0245eb7c15 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail043.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail043.stderr @@ -1,20 +1,16 @@ -tcfail043.hs:38:17: - Ambiguous type variable `a' in the constraint: - (Ord_ a) arising from a use of `gt' +tcfail043.hs:40:25: + Ambiguous type variable `a0' in the constraints: + (Eq_ a0) arising from a use of `eq' at tcfail043.hs:40:25-26 + (Ord_ a0) arising from a use of `gt' at tcfail043.hs:38:17-18 Possible cause: the monomorphism restriction applied to the following: - search :: a -> [a] -> Bool (bound at tcfail043.hs:37:1) + search :: a0 -> [a0] -> Bool (bound at tcfail043.hs:37:1) Probable fix: give these definition(s) an explicit type signature or use -XNoMonomorphismRestriction - In the expression: gt (hd bs) a + In the expression: eq a (hd bs) + In the expression: if eq a (hd bs) then True else search a (tl bs) In the expression: - if gt (hd bs) a then - False - else - if eq a (hd bs) then True else search a (tl bs) - In the expression: - \ a bs - -> if gt (hd bs) a then - False - else - if eq a (hd bs) then True else search a (tl bs) + if gt (hd bs) a then + False + else + if eq a (hd bs) then True else search a (tl bs) diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail046.hs b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail046.hs index 6f8185c8c4..67225acde0 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail046.hs +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail046.hs @@ -3,10 +3,11 @@ module ShouldFail where -type Process a = Pid -> Time -> Message a -> ( MessList a, + +type Process a = Pid -> Time -> Message a -> ( MessList a, Continuation a) -data Continuation a = Do (Process a) deriving Eq +data Continuation a = Do (Process a) deriving Eq type ProcList a = [ (Pid, Status, Process a) ] @@ -18,7 +19,7 @@ data Message a = Create (Process a) | Created Pid | Activate Pid | Passivate Pid | Terminate Pid | Wait Pid Time | Query Pid a | Data Pid a | Event | Output Pid String - deriving Eq + deriving Eq type MessList a = [ Message a ] diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail046.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail046.stderr index 8fcc0dec4d..1b668d07a6 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail046.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail046.stderr @@ -1,16 +1,18 @@ -tcfail046.hs:9:50: +tcfail046.hs:10:50: No instance for (Eq (Process a)) arising from the 'deriving' clause of a data type declaration - Possible fix: add an instance declaration for (Eq (Process a)) - Alternatively, use a standalone 'deriving instance' declaration, - so you can specify the instance context yourself + Possible fix: + add an instance declaration for (Eq (Process a)) + or use a standalone 'deriving instance' declaration, + so you can specify the instance context yourself When deriving the instance for (Eq (Continuation a)) -tcfail046.hs:21:27: +tcfail046.hs:22:25: No instance for (Eq (Process a)) arising from the 'deriving' clause of a data type declaration - Possible fix: add an instance declaration for (Eq (Process a)) - Alternatively, use a standalone 'deriving instance' declaration, - so you can specify the instance context yourself + Possible fix: + add an instance declaration for (Eq (Process a)) + or use a standalone 'deriving instance' declaration, + so you can specify the instance context yourself When deriving the instance for (Eq (Message a)) diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail065.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail065.stderr index 5a10adea10..9d94b920ff 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail065.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail065.stderr @@ -2,7 +2,8 @@ tcfail065.hs:29:20: Couldn't match type `x1' with `x' `x1' is a rigid type variable bound by - the type signature for `setX' at tcfail065.hs:25:11 + the type signature for setX :: x1 -> X x -> X x + at tcfail065.hs:29:3 `x' is a rigid type variable bound by the instance declaration at tcfail065.hs:28:18 In the first argument of `X', namely `x' diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail067.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail067.stderr index 49400d1146..41dc1b0e47 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail067.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail067.stderr @@ -13,26 +13,33 @@ tcfail067.hs:15:11: In an equation for `subRange': subRange (SubRange r value) = r tcfail067.hs:46:12: - Could not deduce (Ord a) from the context (Show a) - arising from a use of `SubRange' + Could not deduce (Ord a) arising from a use of `SubRange' + from the context (Show a) + bound by the type signature for + showRange :: Show a => SubRange a -> String + at tcfail067.hs:(46,1)-(47,58) Possible fix: - add (Ord a) to the context of the type signature for `showRange' + add (Ord a) to the context of + the type signature for showRange :: Show a => SubRange a -> String In the pattern: SubRange (lower, upper) value In an equation for `showRange': showRange (SubRange (lower, upper) value) - = show value ++ " :" ++ show lower ++ ".." ++ show upper + = show value ++ " :" ++ show lower ++ ".." ++ show upper tcfail067.hs:60:10: - Could not deduce (Show (SubRange a)) from the context (Num a) + Could not deduce (Show (SubRange a)) arising from the superclasses of an instance declaration + from the context (Num a) + bound by the instance declaration at tcfail067.hs:60:10-34 Possible fix: add (Show (SubRange a)) to the context of the instance declaration or add an instance declaration for (Show (SubRange a)) In the instance declaration for `Num (SubRange a)' tcfail067.hs:61:12: - Could not deduce (Ord a) from the context (Num a) - arising from a use of `numSubRangeNegate' + Could not deduce (Ord a) arising from a use of `numSubRangeNegate' + from the context (Num a) + bound by the instance declaration at tcfail067.hs:60:10-34 Possible fix: add (Ord a) to the context of the instance declaration In the expression: numSubRangeNegate @@ -40,26 +47,33 @@ tcfail067.hs:61:12: In the instance declaration for `Num (SubRange a)' tcfail067.hs:65:19: - Could not deduce (Ord a) from the context (Num a) - arising from a use of `SubRange' + Could not deduce (Ord a) arising from a use of `SubRange' + from the context (Num a) + bound by the instance declaration at tcfail067.hs:60:10-34 Possible fix: add (Ord a) to the context of the instance declaration In the expression: - SubRange (fromInteger a, fromInteger a) (fromInteger a) + SubRange (fromInteger a, fromInteger a) (fromInteger a) In an equation for `fromInteger': - fromInteger a = SubRange - (fromInteger a, fromInteger a) (fromInteger a) + fromInteger a + = SubRange (fromInteger a, fromInteger a) (fromInteger a) In the instance declaration for `Num (SubRange a)' tcfail067.hs:74:5: - Could not deduce (Ord a) from the context (Num a) - arising from a use of `SubRange' + Could not deduce (Ord a) arising from a use of `SubRange' + from the context (Num a) + bound by the type signature for + numSubRangeBinOp :: Num a => + (a -> a -> a) -> SubRange a -> SubRange a -> SubRange a + at tcfail067.hs:(73,1)-(76,53) Possible fix: add (Ord a) to the context of - the type signature for `numSubRangeBinOp' + the type signature for + numSubRangeBinOp :: Num a => + (a -> a -> a) -> SubRange a -> SubRange a -> SubRange a In the expression: SubRange (result, result) result In an equation for `numSubRangeBinOp': numSubRangeBinOp op a b - = SubRange (result, result) result - where - result = (subRangeValue a) `op` (subRangeValue b) + = SubRange (result, result) result + where + result = (subRangeValue a) `op` (subRangeValue b) diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail068.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail068.stderr index 45b70b9232..afc671a8bf 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail068.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail068.stderr @@ -1,70 +1,92 @@ tcfail068.hs:14:9: - Could not deduce (s1 ~ s) from the context (Constructed a) + Could not deduce (s1 ~ s) + from the context (Constructed a) + bound by the type signature for + itgen :: Constructed a => (Int, Int) -> a -> IndTree s a + at tcfail068.hs:(12,1)-(14,31) `s1' is a rigid type variable bound by - the polymorphic type `forall s. GHC.ST.ST s a' at tcfail068.hs:13:9 + a type expected by the context: GHC.ST.ST s1 (IndTree s a) + at tcfail068.hs:13:9 `s' is a rigid type variable bound by - the type signature for `itgen' at tcfail068.hs:11:53 + the type signature for + itgen :: Constructed a => (Int, Int) -> a -> IndTree s a + at tcfail068.hs:12:1 + Expected type: GHC.ST.ST s (IndTree s1 a) + Actual type: GHC.ST.ST s (STArray s (Int, Int) a) + In the return type of a call of `newSTArray' In the first argument of `runST', namely `(newSTArray ((1, 1), n) x)' - In the expression: runST (newSTArray ((1, 1), n) x) - In an equation for `itgen': - itgen n x = runST (newSTArray ((1, 1), n) x) -tcfail068.hs:19:21: - Could not deduce (s ~ s1) from the context (Constructed a) +tcfail068.hs:20:22: + Could not deduce (s ~ s1) + from the context (Constructed a) + bound by the type signature for + itiap :: Constructed a => + (Int, Int) -> (a -> a) -> IndTree s a -> IndTree s a + at tcfail068.hs:(17,1)-(21,19) `s' is a rigid type variable bound by - the type signature for `itiap' at tcfail068.hs:16:58 + the type signature for + itiap :: Constructed a => + (Int, Int) -> (a -> a) -> IndTree s a -> IndTree s a + at tcfail068.hs:17:1 `s1' is a rigid type variable bound by - the polymorphic type `forall s. GHC.ST.ST s a' at tcfail068.hs:18:9 - In the first argument of `readSTArray', namely `arr' - In the first argument of `(>>=)', namely `readSTArray arr i' - In the first argument of `runST', namely - `(readSTArray arr i - >>= - \ val -> writeSTArray arr i (f val) >> return arr)' + a type expected by the context: GHC.ST.ST s1 (IndTree s a) + at tcfail068.hs:18:9 + Expected type: STArray s1 (Int, Int) a + Actual type: IndTree s a + In the first argument of `writeSTArray', namely `arr' + In the first argument of `(>>)', namely + `writeSTArray arr i (f val)' tcfail068.hs:24:35: - Could not deduce (s ~ s1) from the context (Constructed a) + Could not deduce (s ~ s1) + from the context (Constructed a) + bound by the type signature for + itrap :: Constructed a => + ((Int, Int), (Int, Int)) -> (a -> a) -> IndTree s a -> IndTree s a + at tcfail068.hs:(24,1)-(32,41) `s' is a rigid type variable bound by - the type signature for `itrap' at tcfail068.hs:23:70 + the type signature for + itrap :: Constructed a => + ((Int, Int), (Int, Int)) -> (a -> a) -> IndTree s a -> IndTree s a + at tcfail068.hs:24:1 `s1' is a rigid type variable bound by - the polymorphic type `forall s. GHC.ST.ST s a' - at tcfail068.hs:24:29 + a type expected by the context: GHC.ST.ST s1 (IndTree s a) + at tcfail068.hs:24:29 + Expected type: GHC.ST.ST s1 (IndTree s a) + Actual type: GHC.ST.ST s (IndTree s a) + In the return type of a call of `itrap'' In the first argument of `runST', namely `(itrap' i k)' - In the expression: runST (itrap' i k) - In an equation for `itrap': - itrap ((i, k), (j, l)) f arr - = runST (itrap' i k) - where - itrap' i k - = if k > l then return arr else (itrapsnd i k >> itrap' i (k + 1)) - itrapsnd i k - = if i > j then - return arr - else - (readSTArray arr (i, k) >>= \ val -> ...) tcfail068.hs:36:46: - Could not deduce (s ~ s1) from the context (Constructed b) + Could not deduce (s ~ s1) + from the context (Constructed b) + bound by the type signature for + itrapstate :: Constructed b => + ((Int, Int), (Int, Int)) + -> (a -> b -> (a, b)) + -> ((Int, Int) -> c -> a) + -> (a -> c) + -> c + -> IndTree s b + -> (c, IndTree s b) + at tcfail068.hs:(36,1)-(45,66) `s' is a rigid type variable bound by - the type signature for `itrapstate' at tcfail068.hs:35:40 + the type signature for + itrapstate :: Constructed b => + ((Int, Int), (Int, Int)) + -> (a -> b -> (a, b)) + -> ((Int, Int) -> c -> a) + -> (a -> c) + -> c + -> IndTree s b + -> (c, IndTree s b) + at tcfail068.hs:36:1 `s1' is a rigid type variable bound by - the polymorphic type `forall s. GHC.ST.ST s a' - at tcfail068.hs:36:40 + a type expected by the context: GHC.ST.ST s1 (c, IndTree s b) + at tcfail068.hs:36:40 + Expected type: GHC.ST.ST s1 (c, IndTree s b) + Actual type: GHC.ST.ST s (c, IndTree s b) + In the return type of a call of `itrapstate'' In the first argument of `runST', namely `(itrapstate' i k s)' - In the expression: runST (itrapstate' i k s) - In an equation for `itrapstate': - itrapstate ((i, k), (j, l)) f c d s arr - = runST (itrapstate' i k s) - where - itrapstate' i k s - = if k > l then - return (s, arr) - else - (itrapstatesnd i k s >>= \ (s, arr) -> ...) - itrapstatesnd i k s - = if i > j then - return (s, arr) - else - (readSTArray arr (i, k) >>= \ val -> ...) diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail069.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail069.stderr index 7b9f367751..4c40526b5b 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail069.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail069.stderr @@ -1,7 +1,7 @@ tcfail069.hs:21:7: Couldn't match expected type `([Int], [Int])' - with actual type `[t]' + with actual type `[t0]' In the pattern: [] In a case alternative: [] -> error "foo" In the expression: case (list1, list2) of { [] -> error "foo" } diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail072.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail072.stderr index bc814e0c83..469e75849a 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail072.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail072.stderr @@ -1,14 +1,14 @@ tcfail072.hs:23:13: - Ambiguous type variable `p' in the constraint: - (Ord p) arising from a use of `g' + Ambiguous type variable `p0' in the constraint: + (Ord p0) arising from a use of `g' Probable fix: add a type signature that fixes these type variable(s) In the expression: g A In an equation for `g': g (B _ _) = g A tcfail072.hs:23:13: - Ambiguous type variable `q' in the constraint: - (Ord q) arising from a use of `g' + Ambiguous type variable `q0' in the constraint: + (Ord q0) arising from a use of `g' Probable fix: add a type signature that fixes these type variable(s) In the expression: g A In an equation for `g': g (B _ _) = g A diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail076.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail076.stderr index 4538b1d8c6..9c380de958 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail076.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail076.stderr @@ -2,11 +2,12 @@ tcfail076.hs:18:82: Couldn't match type `res' with `res1' `res' is a rigid type variable bound by - the polymorphic type `forall res. (a -> m res) -> m res' - at tcfail076.hs:18:28 + a type expected by the context: (a -> m res) -> m res + at tcfail076.hs:18:28 `res1' is a rigid type variable bound by - the polymorphic type `forall res. (a1 -> m1 res) -> m1 res' - at tcfail076.hs:18:64 + a type expected by the context: (b -> m res1) -> m res1 + at tcfail076.hs:18:64 + Expected type: m res1 + Actual type: m res + In the return type of a call of `cont' In the expression: cont a - In the first argument of `KContT', namely `(\ cont' -> cont a)' - In the expression: KContT (\ cont' -> cont a) diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail090.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail090.stderr index 72b337c003..c63ced52c3 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail090.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail090.stderr @@ -1,7 +1,7 @@ tcfail090.hs:8:9: Kind incompatibility when matching types: - a :: * + a0 :: * ByteArray# :: # In the expression: undefined In an equation for `die': die _ = undefined diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail099.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail099.stderr index ef9cce0548..f97c5a1161 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail099.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail099.stderr @@ -1,8 +1,13 @@ -tcfail099.hs:9:7: +tcfail099.hs:9:20: Couldn't match type `t' with `a' - because type variable `a' would escape its scope - This (rigid, skolem) type variable is bound by - a pattern with constructor C :: forall a. (a -> Int) -> DS - In the pattern: C f + `t' is a rigid type variable bound by + the inferred type of call :: DS -> t -> Int at tcfail099.hs:9:1 + `a' is a rigid type variable bound by + a pattern with constructor + C :: forall a. (a -> Int) -> DS, + in an equation for `call' + at tcfail099.hs:9:7 + In the first argument of `f', namely `arg' + In the expression: f arg In an equation for `call': call (C f) arg = f arg diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail102.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail102.stderr index 349f1e8320..27fa9aebf5 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail102.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail102.stderr @@ -1,11 +1,14 @@ -tcfail102.hs:8:15: - Could not deduce (Integral (Ratio a)) from the context (Integral a) - arising from a use of `p' +tcfail102.hs:8:7: + Could not deduce (Integral (Ratio a)) arising from a record update + from the context (Integral a) + bound by the type signature for + f :: Integral a => P (Ratio a) -> P (Ratio a) + at tcfail102.hs:8:1-19 Possible fix: add (Integral (Ratio a)) to the context of - the type signature for `f' + the type signature for + f :: Integral a => P (Ratio a) -> P (Ratio a) or add an instance declaration for (Integral (Ratio a)) - In the `p' field of a record In the expression: x {p = p x} In an equation for `f': f x = x {p = p x} diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail103.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail103.stderr index 2d3e292fec..636ab29ae7 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail103.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail103.stderr @@ -2,9 +2,10 @@ tcfail103.hs:15:23: Couldn't match type `t' with `s' `t' is a rigid type variable bound by - the type signature for `f' at tcfail103.hs:10:8 + the type signature for f :: ST t Int at tcfail103.hs:11:1 `s' is a rigid type variable bound by - the type signature for `g' at tcfail103.hs:13:17 + the type signature for g :: ST s Int at tcfail103.hs:15:9 + Expected type: STRef s Int + Actual type: STRef t Int In the first argument of `readSTRef', namely `v' In the expression: readSTRef v - In an equation for `g': g = readSTRef v diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail104.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail104.stderr index b317427522..8bd4608bde 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail104.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail104.stderr @@ -1,7 +1,7 @@ tcfail104.hs:16:19: - Couldn't match expected type `a -> a' - with actual type `forall a1. a1 -> a1' + Couldn't match expected type `a0 -> a0' + with actual type `forall a. a -> a' In the expression: x In the expression: (\ x -> x) In the expression: @@ -9,7 +9,7 @@ tcfail104.hs:16:19: tcfail104.hs:22:39: Couldn't match expected type `forall a. a -> a' - with actual type `a -> a' + with actual type `a0 -> a0' In the expression: x In the expression: (\ (x :: forall a. a -> a) -> x) In the expression: diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail106.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail106.stderr index e9de772233..30004791ce 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail106.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail106.stderr @@ -4,9 +4,3 @@ tcfail106.hs:11:10: arising from the superclasses of an instance declaration Possible fix: add an instance declaration for (S Int) In the instance declaration for `C Int' - -tcfail106.hs:14:10: - No instance for (S Int) - arising from the superclasses of an instance declaration - Possible fix: add an instance declaration for (S Int) - In the instance declaration for `D Int' diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail115.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail115.stderr index cb5a87790f..fd1a02c02d 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail115.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail115.stderr @@ -1,7 +1,7 @@ tcfail115.hs:9:24: Kind incompatibility when matching types: - t :: ?? + t0 :: ?? (# Int, Int #) :: (#) In the expression: (r :: (# Int, Int #)) In a case alternative: r -> (r :: (# Int, Int #)) diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail118.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail118.stderr index 47b0bef641..206bec47be 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail118.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail118.stderr @@ -5,6 +5,4 @@ tcfail118.hs:10:29: Matching instances: instance Eq Foo -- Defined at tcfail118.hs:11:25-26 instance Eq Foo -- Defined at tcfail118.hs:13:10-15 - Alternatively, use a standalone 'deriving instance' declaration, - so you can specify the instance context yourself When deriving the instance for (Eq Bar) diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail122.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail122.stderr index 2a28e8f5cb..3f6c035a55 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail122.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail122.stderr @@ -1,24 +1,20 @@ tcfail122.hs:8:9: Kind incompatibility when matching types: - d :: * -> * - b :: * + d0 :: * -> * + b0 :: * + Expected type: a0 b0 + Actual type: c0 d0 In the expression: undefined :: forall c :: ((* -> *) -> *) d :: (* -> *). c d In the expression: [undefined :: forall a b. a b, undefined :: forall c :: ((* -> *) -> *) d :: (* -> *). c d] - In an equation for `foo': - foo - = [undefined :: forall a b. a b, - undefined :: forall c :: ((* -> *) -> *) d :: (* -> *). c d] tcfail122.hs:8:9: Kind incompatibility when matching types: - c :: (* -> *) -> * - a :: * -> * - Expected type: a b - Actual type: c d + c0 :: (* -> *) -> * + a0 :: * -> * In the expression: undefined :: forall c :: ((* -> *) -> *) d :: (* -> *). c d In the expression: diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail123.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail123.stderr index 8d048f0274..560c8d9048 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail123.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail123.stderr @@ -1,7 +1,7 @@ tcfail123.hs:11:10: Kind incompatibility when matching types: - t :: * + t0 :: * GHC.Prim.Int# :: # In the first argument of `f', namely `3#' In the expression: f 3# diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail128.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail128.stderr index b8cac69900..122313fec1 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail128.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail128.stderr @@ -1,10 +1,10 @@ tcfail128.hs:18:16: - No instance for (Data.Array.Base.MArray b FlatVector IO) + No instance for (Data.Array.Base.MArray b0 FlatVector IO) arising from a use of `thaw' Possible fix: add an instance declaration for - (Data.Array.Base.MArray b FlatVector IO) + (Data.Array.Base.MArray b0 FlatVector IO) In a stmt of a 'do' expression: v <- thaw tmp In the expression: do { let sL = ... @@ -13,7 +13,8 @@ tcfail128.hs:18:16: v <- thaw tmp; return () } In an equation for `main': - main = do { let sL = ... - ....; - v <- thaw tmp; - return () } + main + = do { let sL = ... + ....; + v <- thaw tmp; + return () } diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail131.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail131.stderr index 59a0c7f702..134b76ffb3 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail131.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail131.stderr @@ -1,7 +1,11 @@ -tcfail131.hs:7:9: - Could not deduce (b ~ Integer) from the context (Num b) +tcfail131.hs:7:13: + Could not deduce (b ~ Integer) + from the context (Num b) + bound by the type signature for g :: Num b => b -> b + at tcfail131.hs:7:3-13 `b' is a rigid type variable bound by - the type signature for `g' at tcfail131.hs:6:12 + the type signature for g :: Num b => b -> b at tcfail131.hs:7:3 + In the second argument of `f', namely `x' In the expression: f x x In an equation for `g': g x = f x x diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail132.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail132.stderr index 921bf6edc1..b25f21a809 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail132.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail132.stderr @@ -1,7 +1,7 @@ tcfail132.hs:17:37: Kind mis-match - The first argument of `T' should have kind `k -> k1 -> k2 -> *', - but `Object f' f t' has kind `k -> k1 -> *' + The first argument of `T' should have kind `k0 -> k1 -> k2 -> *', + but `Object f' f t' has kind `k0 -> k1 -> *' In the type `T (Object f' f t) (DUnit t)' In the type synonym declaration for `LiftObject' diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail133.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail133.stderr index f9774f3691..4fef109db0 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail133.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail133.stderr @@ -1,12 +1,12 @@ tcfail133.hs:68:14: - No instance for (AddDigit (Zero :@ (One :@ One)) One c) + No instance for (AddDigit (Zero :@ (One :@ One)) One a0) arising from a use of `add' Possible fix: add an instance declaration for - (AddDigit (Zero :@ (One :@ One)) One c) + (AddDigit (Zero :@ (One :@ One)) One a0) In the second argument of `($)', namely - `add (One :@ Zero) (One :@ One)' + `add (One :@ Zero) (One :@ One)' In the expression: show $ add (One :@ Zero) (One :@ One) In an equation for `foo': foo = show $ add (One :@ Zero) (One :@ One) diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail135.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail135.stderr index e8c8ab8f09..37274283ed 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail135.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail135.stderr @@ -1,6 +1,6 @@ tcfail135.hs:6:23: `f' is not applied to enough type arguments - Expected kind `?', but `f' has kind `k -> *' + Expected kind `?', but `f' has kind `k0 -> *' In the type `f a -> f' In the class declaration for `Foo' diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail142.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail142.stderr index 2e5bee2446..cd0161658f 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail142.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail142.stderr @@ -1,7 +1,7 @@ tcfail142.hs:21:12: - Ambiguous type variables `a', `r' in the constraint: - (Bar a r) arising from a use of `bar' + Ambiguous type variables `a0', `r0' in the constraint: + (Bar a0 r0) arising from a use of `bar' Probable fix: add a type signature that fixes these type variable(s) In the first argument of `foo', namely `bar' In the expression: foo bar diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail143.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail143.stderr index d293fadc46..30926b648c 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail143.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail143.stderr @@ -1,10 +1,10 @@ tcfail143.hs:29:9: - Couldn't match type `Z' with `S Z' + Couldn't match type `S Z' with `Z' When using functional dependencies to combine - MinMax Z b Z b, - arising from the dependency `b c d -> a' - in the instance declaration at tcfail143.hs:12:10 + MinMax a Z Z a, + arising from the dependency `a b -> c d' + in the instance declaration at tcfail143.hs:11:10 MinMax (S Z) Z Z Z, arising from a use of `extend' at tcfail143.hs:29:9-16 In the expression: n1 `extend` n0 @@ -13,9 +13,9 @@ tcfail143.hs:29:9: tcfail143.hs:29:9: Couldn't match type `Z' with `S Z' When using functional dependencies to combine - MinMax a Z Z a, + MinMax Z Z Z Z, arising from the dependency `b c d -> a' - in the instance declaration at tcfail143.hs:11:10 + in the instance declaration at tcfail143.hs:10:10 MinMax (S Z) Z Z Z, arising from a use of `extend' at tcfail143.hs:29:9-16 In the expression: n1 `extend` n0 @@ -24,20 +24,20 @@ tcfail143.hs:29:9: tcfail143.hs:29:9: Couldn't match type `Z' with `S Z' When using functional dependencies to combine - MinMax Z Z Z Z, + MinMax a Z Z a, arising from the dependency `b c d -> a' - in the instance declaration at tcfail143.hs:10:10 + in the instance declaration at tcfail143.hs:11:10 MinMax (S Z) Z Z Z, arising from a use of `extend' at tcfail143.hs:29:9-16 In the expression: n1 `extend` n0 In an equation for `t2': t2 = n1 `extend` n0 tcfail143.hs:29:9: - Couldn't match type `S Z' with `Z' + Couldn't match type `Z' with `S Z' When using functional dependencies to combine - MinMax a Z Z a, - arising from the dependency `a b -> c d' - in the instance declaration at tcfail143.hs:11:10 + MinMax Z b Z b, + arising from the dependency `b c d -> a' + in the instance declaration at tcfail143.hs:12:10 MinMax (S Z) Z Z Z, arising from a use of `extend' at tcfail143.hs:29:9-16 In the expression: n1 `extend` n0 @@ -53,10 +53,3 @@ tcfail143.hs:29:9: arising from a use of `extend' at tcfail143.hs:29:9-16 In the expression: n1 `extend` n0 In an equation for `t2': t2 = n1 `extend` n0 - -tcfail143.hs:29:9: - No instance for (MinMax (S Z) Z Z Z) - arising from a use of `extend' - Possible fix: add an instance declaration for (MinMax (S Z) Z Z Z) - In the expression: n1 `extend` n0 - In an equation for `t2': t2 = n1 `extend` n0 diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail147.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail147.stderr index 6ae86bacfb..81e77fe648 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail147.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail147.stderr @@ -1,7 +1,7 @@ tcfail147.hs:7:19: `XClass' is not applied to enough type arguments - Expected kind `?', but `XClass' has kind `k -> *' + Expected kind `?', but `XClass' has kind `k0 -> *' In the type `XClass' In the definition of data constructor `XCon' In the data type declaration for `XData' diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail153.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail153.stderr index 84208f60f4..0b40df47d1 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail153.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail153.stderr @@ -1,10 +1,12 @@ -tcfail153.hs:6:7: +tcfail153.hs:6:9: Couldn't match type `a' with `Bool' `a' is a rigid type variable bound by - the type signature for `f' at tcfail153.hs:5:6 + the type signature for f :: a -> [a] at tcfail153.hs:6:1 + In the first argument of `g', namely `x' In the expression: g x In an equation for `f': - f x = g x - where - g y = if y then [] else [...] + f x + = g x + where + g y = if y then [] else [...] diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail159.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail159.stderr index d6a5184e98..b389ef1e96 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail159.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail159.stderr @@ -1,7 +1,7 @@ tcfail159.hs:9:11: Kind incompatibility when matching types: - t :: * + t0 :: * (# Int, Int #) :: (#) In the pattern: ~(# p, q #) In a case alternative: ~(# p, q #) -> p diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail165.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail165.stderr index ef5332323a..a4fed8c989 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail165.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail165.stderr @@ -1,7 +1,7 @@ tcfail165.hs:15:23: Couldn't match expected type `forall a. Show a => a -> String' - with actual type `b -> String' + with actual type `b0 -> String' In the second argument of `putMVar', namely `(show :: forall b. Show b => b -> String)' In the expression: diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail167.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail167.stderr index 35e22c23a9..f62f524ebd 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail167.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail167.stderr @@ -2,6 +2,8 @@ tcfail167.hs:14:14: Couldn't match type `Char' with `Float' Inaccessible code in - a pattern with constructor `C2', in an equation for `inaccessible' + a pattern with constructor + C2 :: T Float, + in an equation for `inaccessible' In the pattern: C2 In an equation for `inaccessible': inaccessible C2 = ' ' diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail168.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail168.stderr index 3958c9173e..e3dce618b1 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail168.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail168.stderr @@ -1,15 +1,11 @@ tcfail168.hs:8:11: - Couldn't match expected type `Char -> a' with actual type `IO ()' + Couldn't match expected type `Char -> a0' with actual type `IO ()' + In the return type of a call of `putChar' In a stmt of a 'do' expression: putChar 'a' In the expression: - do { putChar; - putChar 'a'; - putChar 'a'; - putChar 'a'; - .... } - In an equation for `foo': - foo = do { putChar; - putChar 'a'; - putChar 'a'; - .... } + do { putChar; + putChar 'a'; + putChar 'a'; + putChar 'a'; + .... } diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail169.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail169.stderr index 438313a608..cfe63c06ee 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail169.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail169.stderr @@ -2,7 +2,8 @@ tcfail169.hs:7:51: No instance for (Show (Succ a)) arising from the 'deriving' clause of a data type declaration - Possible fix: add an instance declaration for (Show (Succ a)) - Alternatively, use a standalone 'deriving instance' declaration, - so you can specify the instance context yourself + Possible fix: + add an instance declaration for (Show (Succ a)) + or use a standalone 'deriving instance' declaration, + so you can specify the instance context yourself When deriving the instance for (Show (Seq a)) diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail171.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail171.stderr index b4efd33e32..b1860c201c 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail171.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail171.stderr @@ -1,6 +1,6 @@ - -tcfail171.hs:9:10: - No instances for (PrintfType b, PrintfArg a) - arising from a use of `printf' - In the expression: printf "0x%x" x - In an equation for `phex': phex x = printf "0x%x" x +
+tcfail171.hs:9:10:
+ No instances for (PrintfArg a, PrintfType b)
+ arising from a use of `printf'
+ In the expression: printf "0x%x" x
+ In an equation for `phex': phex x = printf "0x%x" x
diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail174.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail174.stderr index 7ad3d80408..84c0868db4 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail174.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail174.stderr @@ -1,23 +1,23 @@ tcfail174.hs:9:10: Couldn't match expected type `forall a. a -> a' - with actual type `a -> a' + with actual type `a0 -> a0' In the first argument of `Base', namely `id' In the expression: Base id In an equation for `g': g = Base id tcfail174.hs:13:14: - Couldn't match expected type `forall x. x -> a' - with actual type `forall a1. a1 -> a1' - Expected type: Capture (forall x. x -> a) - Actual type: Capture (forall a1. a1 -> a1) + Couldn't match expected type `forall x. x -> a0' + with actual type `forall a. a -> a' + Expected type: Capture (forall x. x -> a0) + Actual type: Capture (forall a. a -> a) In the first argument of `Capture', namely `g' In the expression: Capture g tcfail174.hs:16:14: Couldn't match expected type `forall x. x -> b' with actual type `forall a. a -> a' - Expected type: Capture (forall x. x -> b) - Actual type: Capture (forall a. a -> a) + Expected type: Capture (forall x. x -> b) + Actual type: Capture (forall a. a -> a) In the first argument of `Capture', namely `g' In the expression: Capture g diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail175.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail175.stderr index f173cf7a0d..f181c00bcd 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail175.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail175.stderr @@ -2,6 +2,6 @@ tcfail175.hs:11:1: Couldn't match type `a' with `String -> String -> String' `a' is a rigid type variable bound by - the type signature for `evalRHS' at tcfail175.hs:10:19 + the type signature for evalRHS :: Int -> a at tcfail175.hs:11:1 The equation(s) for `evalRHS' have three arguments, but its type `Int -> a' has only one diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail177.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail177.stderr index 1a19d53900..3107d1e668 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail177.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail177.stderr @@ -1,8 +1,9 @@ -
-tcfail177.hs:10:12:
- Couldn't match expected type `Bool' with actual type `Int'
- In the expression:
- foo
- [a ~?= b, "Three" ~?= "3", "Four" ~?= "4", "Five" ~?= "5", ....]
- In an equation for `allTests':
- allTests = foo [a ~?= b, "Three" ~?= "3", "Four" ~?= "4", ....]
+ +tcfail177.hs:10:12: + Couldn't match expected type `Bool' with actual type `Int' + In the return type of a call of `foo' + In the expression: + foo + [a ~?= b, "Three" ~?= "3", "Four" ~?= "4", "Five" ~?= "5", ....] + In an equation for `allTests': + allTests = foo [a ~?= b, "Three" ~?= "3", "Four" ~?= "4", ....] diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail178.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail178.stderr index 780e06a705..63119af75e 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail178.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail178.stderr @@ -1,13 +1,13 @@ tcfail178.hs:15:7: - Couldn't match expected type `[a]' with actual type `()' - Expected type: Bool -> [a] - Actual type: Bool -> () + Couldn't match expected type `[a0]' with actual type `()' + Expected type: Bool -> [a0] + Actual type: Bool -> () In the first argument of `a', namely `y' In the expression: a y tcfail178.hs:18:7: - Couldn't match expected type `Bool -> [a]' with actual type `()' + Couldn't match expected type `Bool -> [a0]' with actual type `()' In the first argument of `a', namely `()' In the expression: a () In an equation for `d': d = a () diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail179.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail179.stderr index d2b5ad6ab4..ba995b65ea 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail179.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail179.stderr @@ -1,12 +1,14 @@ -tcfail179.hs:14:39: +tcfail179.hs:14:41: Couldn't match type `x' with `s' `x' is a rigid type variable bound by a pattern with constructor - T :: forall s x. (s -> (x -> s) -> (x, s, Int)) -> T s - at tcfail179.hs:14:14 + T :: forall s x. (s -> (x -> s) -> (x, s, Int)) -> T s, + in a case alternative + at tcfail179.hs:14:14 `s' is a rigid type variable bound by - the type signature for `run' at tcfail179.hs:12:10 - In the first argument of `g', namely `x' + the type signature for run :: T s -> Int at tcfail179.hs:13:1 + Expected type: x -> s + Actual type: x -> x + In the second argument of `g', namely `id' In the expression: g x id - In a pattern binding: (x, _, b) = g x id diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail180.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail180.stderr index 19bdd9bc14..96d76100ea 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail180.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail180.stderr @@ -1,6 +1,6 @@ tcfail180.hs:10:9: - Couldn't match expected type `f b' with actual type `Bool' + Couldn't match expected type `f0 b0' with actual type `Bool' In the pattern: True In a case alternative: True -> () In the expression: case p of { True -> () } diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail181.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail181.stderr index dfc87ce8fe..59fe8b83af 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail181.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail181.stderr @@ -1,7 +1,7 @@ tcfail181.hs:17:9: - Ambiguous type variable `m' in the constraint: - (Monad m) arising from a use of `foo' + Ambiguous type variable `m0' in the constraint: + (Monad m0) arising from a use of `foo' Probable fix: add a type signature that fixes these type variable(s) In the expression: foo In the expression: foo {bar = return True} diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail182.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail182.stderr index 75221e72a7..d6b97af250 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail182.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail182.stderr @@ -1,6 +1,6 @@ tcfail182.hs:9:3: Couldn't match expected type `Prelude.Maybe a' - with actual type `Maybe t' + with actual type `Maybe t0' In the pattern: Foo In an equation for `f': f Foo = 3 diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail186.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail186.stderr index 453f815895..3f4504b810 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail186.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail186.stderr @@ -1,7 +1,7 @@ -
-tcfail186.hs:7:9:
- Couldn't match expected type `PhantomSyn a'
- with actual type `[Char]'
- In the first argument of `f', namely `"hoo"'
- In the expression: f "hoo"
- In an equation for `foo': foo = f "hoo"
+ +tcfail186.hs:7:9: + Couldn't match expected type `PhantomSyn a0' + with actual type `[Char]' + In the first argument of `f', namely `"hoo"' + In the expression: f "hoo" + In an equation for `foo': foo = f "hoo" diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail189.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail189.stderr index 7d062bf846..106caa5873 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail189.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail189.stderr @@ -1,7 +1,7 @@ tcfail189.hs:9:31: - Couldn't match expected type `a -> a1' with actual type `[a2]' - Expected type: (a -> a1) -> [a] -> [[a]] - Actual type: [a2] -> [a2] + Couldn't match expected type `a -> t0' with actual type `[a0]' + Expected type: (a -> t0) -> [a] -> [[a]] + Actual type: [a0] -> [a0] + In the return type of a call of `take' In the expression: take 2 - In a stmt of a list comprehension: then group by x using take 2 diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail191.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail191.stderr index d70026b928..6fd626afd4 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail191.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail191.stderr @@ -2,9 +2,8 @@ tcfail191.hs:11:26: Couldn't match type `a' with `[a]' `a' is a rigid type variable bound by - the polymorphic type `forall a1. [a1] -> [[a1]]' - at tcfail191.hs:11:9 + a type expected by the context: [a] -> [[a]] at tcfail191.hs:11:9 + Expected type: [a] -> [[a]] + Actual type: [a] -> [a] + In the return type of a call of `take' In the expression: take 5 - In a stmt of a list comprehension: then group using take 5 - In the expression: - [() | x <- [Gnorf, Brain], then group using take 5] diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail192.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail192.stderr index 15e03bbbb2..d72c821fd6 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail192.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail192.stderr @@ -1,20 +1,18 @@ -tcfail192.hs:8:11: +tcfail192.hs:8:13: No instance for (Num [[Char]]) - arising from a use of `+' + arising from the literal `1' Possible fix: add an instance declaration for (Num [[Char]]) + In the second argument of `(+)', namely `1' In the expression: x + 1 In the expression: [x + 1 | x <- ["Hello", "World"], then group using take 5] - In an equation for `foo': - foo = [x + 1 | x <- ["Hello", "World"], then group using take 5] tcfail192.hs:10:26: Couldn't match type `a' with `[a]' `a' is a rigid type variable bound by - the polymorphic type `forall a1. [a1] -> [[a1]]' - at tcfail192.hs:10:9 + a type expected by the context: [a] -> [[a]] at tcfail192.hs:10:9 + Expected type: [a] -> [[a]] + Actual type: [a] -> [a] + In the return type of a call of `take' In the expression: take 5 - In a stmt of a list comprehension: then group using take 5 - In the expression: - [x + 1 | x <- ["Hello", "World"], then group using take 5] diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail193.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail193.stderr index bd64d5231a..59be5fb41f 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail193.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail193.stderr @@ -2,8 +2,8 @@ tcfail193.hs:10:31: Couldn't match type `a' with `[a]' `a' is a rigid type variable bound by - the polymorphic type `forall a1. [a1] -> [a1]' - at tcfail193.hs:10:10 + a type expected by the context: [a] -> [a] at tcfail193.hs:10:10 + Expected type: [a] -> [a] + Actual type: [a] -> [[a]] In the expression: inits In a stmt of a list comprehension: then inits - In the expression: [x | x <- [3, 2, 1], then inits] diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail194.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail194.stderr index cacf888f4b..2f05295327 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail194.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail194.stderr @@ -1,7 +1,7 @@ tcfail194.hs:9:29: - Couldn't match expected type `a -> a1' with actual type `[a2]' - Expected type: (a -> a1) -> [a] -> [a] - Actual type: [a2] -> [a2] + Couldn't match expected type `a -> t0' with actual type `[a0]' + Expected type: (a -> t0) -> [a] -> [a] + Actual type: [a0] -> [a0] + In the return type of a call of `take' In the expression: take 5 - In a stmt of a list comprehension: then take 5 by x diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail198.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail198.stderr index ceee0d4aee..e813158a62 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail198.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail198.stderr @@ -1,6 +1,6 @@ tcfail198.hs:6:17: - Couldn't match expected type `t -> t1' + Couldn't match expected type `t0 -> t1' with actual type `forall a. [a] -> [a]' The lambda expression `\ (x : xs) -> xs ++ ...' has one argument one argument, diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail199.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail199.stderr index 1056034857..6866a26452 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail199.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail199.stderr @@ -1,5 +1,5 @@ tcfail199.hs:5:1: - Couldn't match expected type `IO t' with actual type `[Char]' + Couldn't match expected type `IO t0' with actual type `[Char]' In the expression: main When checking the type of the function `main' diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail200.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail200.stderr index 9c1e023a91..90f590d8e2 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail200.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail200.stderr @@ -1,7 +1,7 @@ tcfail200.hs:5:15: Kind incompatibility when matching types: - t :: * + t0 :: * GHC.Prim.Int# :: # In the expression: 1# In the expression: (1#, 'c') diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail201.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail201.stderr index 4c5d43c35e..653e503edc 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail201.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail201.stderr @@ -1,11 +1,14 @@ -tcfail201.hs:17:27: - Couldn't match type `a' with `HsDoc id' +tcfail201.hs:18:58: + Couldn't match type `a' with `HsDoc t0' `a' is a rigid type variable bound by - the type signature for `gfoldl'' at tcfail201.hs:15:78 - In the pattern: DocEmpty - In a case alternative: DocEmpty -> z DocEmpty - In the expression: - case hsDoc of { - DocEmpty -> z DocEmpty - (DocParagraph hsDoc) -> z DocParagraph `k` hsDoc } + the type signature for + gfoldl' :: (forall a1 b. c (a1 -> b) -> a1 -> c b) + -> (forall g. g -> c g) + -> a + -> c a + at tcfail201.hs:16:1 + Expected type: HsDoc t0 -> a + Actual type: HsDoc t0 -> HsDoc t0 + In the first argument of `z', namely `DocParagraph' + In the first argument of `k', namely `z DocParagraph' diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail204.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail204.stderr index 2141a3e072..e9d9bb739d 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail204.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail204.stderr @@ -1,10 +1,13 @@ -tcfail204.hs:10:7: +tcfail204.hs:10:15: Warning: Defaulting the following constraint(s) to type `Double' - (RealFrac a) arising from a use of `ceiling' + (Fractional a0) arising from the literal `6.3' + at tcfail204.hs:10:15-17 + (RealFrac a0) arising from a use of `ceiling' + at tcfail204.hs:10:7-13 + In the first argument of `ceiling', namely `6.3' In the expression: ceiling 6.3 In an equation for `foo': foo = ceiling 6.3 <no location info>: Failing due to -Werror. - diff --git a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail206.stderr b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail206.stderr index e3350960d7..46419c4522 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail206.stderr +++ b/testsuite/tests/ghc-regress/typecheck/should_fail/tcfail206.stderr @@ -1,44 +1,46 @@ tcfail206.hs:5:5: Couldn't match expected type `Int' with actual type `Bool' - Expected type: Bool -> (Int, Bool) - Actual type: Bool -> (Bool, t) + Expected type: Bool -> (Int, Bool) + Actual type: Bool -> (Bool, t0) In the expression: (, True) In an equation for `a': a = (, True) tcfail206.hs:8:5: Couldn't match expected type `Bool -> (Int, Bool)' - with actual type `(t, Int)' - Expected type: Int -> Bool -> (Int, Bool) - Actual type: Int -> (t, Int) + with actual type `(t0, Int)' + Expected type: Int -> Bool -> (Int, Bool) + Actual type: Int -> (t0, Int) In the expression: (1,) In an equation for `b': b = (1,) -tcfail206.hs:11:5: +tcfail206.hs:11:6: Couldn't match type `a' with `Bool' `a' is a rigid type variable bound by - the type signature for `c' at tcfail206.hs:10:6 + the type signature for c :: a -> (a, Bool) at tcfail206.hs:11:1 + In the expression: True || False In the expression: (True || False,) In an equation for `c': c = (True || False,) tcfail206.hs:14:5: Couldn't match expected type `Int' with actual type `Bool' - Expected type: Bool -> (# Int, Bool #) - Actual type: Bool -> (# Bool, t #) + Expected type: Bool -> (# Int, Bool #) + Actual type: Bool -> (# Bool, t0 #) In the expression: (# , True #) In an equation for `d': d = (# , True #) tcfail206.hs:17:5: Couldn't match expected type `Bool -> (# Int, Bool #)' - with actual type `(# t, Int #)' - Expected type: Int -> Bool -> (# Int, Bool #) - Actual type: Int -> (# t, Int #) + with actual type `(# t0, Int #)' + Expected type: Int -> Bool -> (# Int, Bool #) + Actual type: Int -> (# t0, Int #) In the expression: (# 1, #) In an equation for `e': e = (# 1, #) -tcfail206.hs:20:5: +tcfail206.hs:20:7: Couldn't match type `a' with `Bool' `a' is a rigid type variable bound by - the type signature for `f' at tcfail206.hs:19:6 + the type signature for f :: a -> (# a, Bool #) at tcfail206.hs:20:1 + In the expression: True || False In the expression: (# True || False, #) In an equation for `f': f = (# True || False, #) diff --git a/testsuite/tests/ghc-regress/typecheck/should_run/IPRun.hs b/testsuite/tests/ghc-regress/typecheck/should_run/IPRun.hs index ad15934cc2..66abe6dcbe 100644 --- a/testsuite/tests/ghc-regress/typecheck/should_run/IPRun.hs +++ b/testsuite/tests/ghc-regress/typecheck/should_run/IPRun.hs @@ -11,7 +11,7 @@ f1 = let ?x = 5 in \() -> ?x -- Should always return 5 f2 () = let ?x = 5 in \() -> ?x - -- Inferred type: (?x::Integer) => () -> () -> Integer + -- Inferred type: (Num a, ?x::a) => () -> () -> a -- should always return 5 f3 :: () -> ((?x :: Int) => Int) |