diff options
154 files changed, 1151 insertions, 382 deletions
diff --git a/ghc/tests/ccall/should_fail/cc001.stderr b/ghc/tests/ccall/should_fail/cc001.stderr index e95963165d..4388fc9a7d 100644 --- a/ghc/tests/ccall/should_fail/cc001.stderr +++ b/ghc/tests/ccall/should_fail/cc001.stderr @@ -1,7 +1,7 @@  cc001.hs:5:      Ambiguous type variable(s) `t' -	in the constraint `PrelGHC.CCallable t' +	in the constraint `CCallable t'  	arising from an argument in the _ccall_ to `foo', namely `(undefined ())' at cc001.hs:5  Compilation had errors diff --git a/ghc/tests/ccall/should_fail/cc002.stderr b/ghc/tests/ccall/should_fail/cc002.stderr index d41df55524..26bc5d0509 100644 --- a/ghc/tests/ccall/should_fail/cc002.stderr +++ b/ghc/tests/ccall/should_fail/cc002.stderr @@ -1,6 +1,6 @@  cc002.hs:10: -    No instance for `PrelGHC.CReturnable ForeignObj' +    No instance for `CReturnable ForeignObj'  	arising from the result of the _ccall_ to `a' at cc002.hs:10  Compilation had errors diff --git a/ghc/tests/ccall/should_fail/cc004.stderr b/ghc/tests/ccall/should_fail/cc004.stderr index 1b02c464b2..11f5d856ce 100644 --- a/ghc/tests/ccall/should_fail/cc004.stderr +++ b/ghc/tests/ccall/should_fail/cc004.stderr @@ -1,11 +1,11 @@  cc004.hs:2:      Cannot generalise these overloadings (in a _ccall_): -	`PrelGHC.CReturnable b' arising from the result of the _ccall_ to `f' at cc004.hs:15 +	`CReturnable b' arising from the result of the _ccall_ to `f' at cc004.hs:15  cc004.hs:2:      Cannot generalise these overloadings (in a _ccall_): -	`PrelGHC.CReturnable b' arising from the result of the _ccall_ to `f' at cc004.hs:8 +	`CReturnable b' arising from the result of the _ccall_ to `f' at cc004.hs:8  Compilation had errors diff --git a/ghc/tests/deSugar/should_compile/ds020.stderr b/ghc/tests/deSugar/should_compile/ds020.stderr index 87ecde21cb..719bd5ee36 100644 --- a/ghc/tests/deSugar/should_compile/ds020.stderr +++ b/ghc/tests/deSugar/should_compile/ds020.stderr @@ -11,4 +11,3 @@ ds020.hs:13: Pattern match(es) are overlapped in the definition of function `d':  ds020.hs:19: Pattern match(es) are overlapped in the definition of function `f':  	    f (x@~[]) = ... -NOTE: Simplifier still going after 4 iterations; bailing out. diff --git a/ghc/tests/deriving/should_fail/drvfail004.stderr b/ghc/tests/deriving/should_fail/drvfail004.stderr index 81978e9c3a..3657e58a93 100644 --- a/ghc/tests/deriving/should_fail/drvfail004.stderr +++ b/ghc/tests/deriving/should_fail/drvfail004.stderr @@ -9,3 +9,4 @@ drvfail004.hs:5:      When checking the superclasses of an instance declaration  Compilation had errors + diff --git a/ghc/tests/deriving/should_fail/drvfail007.stderr b/ghc/tests/deriving/should_fail/drvfail007.stderr index d8ee804db8..ae4b9bf300 100644 --- a/ghc/tests/deriving/should_fail/drvfail007.stderr +++ b/ghc/tests/deriving/should_fail/drvfail007.stderr @@ -4,3 +4,4 @@ drvfail007.hs:2:      When deriving classes for `Foo'  Compilation had errors + diff --git a/ghc/tests/lib/should_run/Makefile b/ghc/tests/lib/should_run/Makefile index ffb1f61812..b65b4d9502 100644 --- a/ghc/tests/lib/should_run/Makefile +++ b/ghc/tests/lib/should_run/Makefile @@ -1,5 +1,5 @@  #----------------------------------------------------------------------------- -# $Id: Makefile,v 1.11 1999/02/26 12:42:06 simonm Exp $ +# $Id: Makefile,v 1.12 1999/06/09 09:35:58 simonpj Exp $  TOP = ../..  include $(TOP)/mk/boilerplate.mk @@ -11,6 +11,7 @@ packedstring001_HC_OPTS = -syslib misc  exceptions001_HC_OPTS   = -fglasgow-exts -fno-warn-missing-methods  stableptr002_HC_OPTS    = -fglasgow-exts +stableptr003_HC_OPTS    = -fglasgow-exts  list001_HC_OPTS         = -fglasgow-exts  enum01_HC_OPTS		= -cpp -fglasgow-exts -H12m diff --git a/ghc/tests/lib/should_run/enum01.stdout b/ghc/tests/lib/should_run/enum01.stdout index 6b4538eb78..436fa69dff 100644 --- a/ghc/tests/lib/should_run/enum01.stdout +++ b/ghc/tests/lib/should_run/enum01.stdout @@ -60,12 +60,12 @@ Testing Enum Integer:  Testing Enum Char:       (succ 'a') = 'b'      (succ (minBound::Char)) = '\SOH' -    (succ (maxBound::Char)) = error "Prelude.Enum.succ{Char}: tried to take `succ' of maxBound" +    (succ (maxBound::Char)) = error "Prelude.Enum.Char.succ: bad argument"      (pred 'b') = 'a'      pred (maxBound::Char) = '\254' -    pred (minBound::Char) = error "Prelude.Enum.pred{Char}: tried to to take `pred' of minBound" +    pred (minBound::Char) = error "Prelude.Enum.Char.pred: bad argument"      (map (toEnum::Int->Char) [123,ord (minBound::Char), ord(maxBound::Char)]) = "{\NUL\255" -    (toEnum::Int->Char) (minBound::Int) = error "Prelude.Enum.toEnum{Char}: out of range: -2147483648" +    (toEnum::Int->Char) (minBound::Int) = error "Prelude.chr: bad argument"      (map fromEnum ['X',minBound,maxBound]) = [88,0,255]      (take 7 ['\NUL' .. ]) = "\NUL\SOH\STX\ETX\EOT\ENQ\ACK"      (take 7 ['\250' .. ]) = "\250\251\252\253\254\255" @@ -93,14 +93,14 @@ Testing Enum Char:      (take 7 ['\251', '\252' .. maxBound]) = "\251\252\253\254\255"      (take 7 ['\5', '\4' .. minBound]) = "\ENQ\EOT\ETX\STX\SOH\NUL"  Testing Enum ():  -    (succ ()) = error "Prelude.Enum.succ{()}: not possible" -    (succ (minBound::())) = error "Prelude.Enum.succ{()}: not possible" -    (succ (maxBound::())) = error "Prelude.Enum.succ{()}: not possible" -    (pred ()) = error "Prelude.Enum.pred{()}: not possible" -    (pred (minBound::())) = error "Prelude.Enum.pred{()}: not possible" -    (pred (maxBound::())) = error "Prelude.Enum.pred{()}: not possible" +    (succ ()) = error "Prelude.Enum.().succ: bad argment" +    (succ (minBound::())) = error "Prelude.Enum.().succ: bad argment" +    (succ (maxBound::())) = error "Prelude.Enum.().succ: bad argment" +    (pred ()) = error "Prelude.Enum.().pred: bad argument" +    (pred (minBound::())) = error "Prelude.Enum.().pred: bad argument" +    (pred (maxBound::())) = error "Prelude.Enum.().pred: bad argument"      (toEnum 0)::() = () -    (toEnum 1)::() = error "Prelude.Enum.toEnum{()}: argument not 0" +    (toEnum 1)::() = error "Prelude.Enum.().toEnum: bad argument"      (fromEnum ()) = 0      ([()..]) = [()]      ([(),()..]) = [()] @@ -109,12 +109,12 @@ Testing Enum ():  Testing Enum Ordering (derived):       (succ LT) = EQ      (succ (minBound::Ordering)) = EQ -    (succ (maxBound::Ordering)) = error "succ{Ordering}: tried to take `succ' of last tag in enumeration" +    (succ (maxBound::Ordering)) = error "Prelude.Enum.Ordering.succ: bad argment"      (pred GT) = EQ      (pred (maxBound::Ordering)) = EQ -    (pred (minBound::Ordering)) = error "pred{Ordering}: tried to take `pred' of first tag in enumeration" +    (pred (minBound::Ordering)) = error "Prelude.Enum.Ordering.pred: bad argment"      (toEnum 0)::Ordering = LT -    (toEnum 5)::Ordering = error "toEnum{Ordering}: tag (5) is outside of enumeration's range (0,2)" +    (toEnum 5)::Ordering = error "Prelude.Enum.Ordering.toEnum: bad argment"      (fromEnum LT) = 0      (fromEnum EQ) = 1      (fromEnum GT) = 2 @@ -146,12 +146,12 @@ Testing Enum Ordering (derived):  Testing Enum Bool:       (succ False) = True      (succ (minBound::Bool)) = True -    (succ (maxBound::Bool)) = error "succ{Bool}: tried to take `succ' of last tag in enumeration" +    (succ (maxBound::Bool)) = error "Prelude.Enum.Bool.succ: bad argment"      (pred True) = False      (pred (maxBound::Bool)) = False -    (pred (minBound::Bool)) = error "pred{Bool}: tried to take `pred' of first tag in enumeration" +    (pred (minBound::Bool)) = error "Prelude.Enum.Bool.pred: bad argment"      (toEnum 0)::Bool = False -    (toEnum 5)::Bool = error "toEnum{Bool}: tag (5) is outside of enumeration's range (0,1)" +    (toEnum 5)::Bool = error "Prelude.Enum.Bool.toEnum: bad argment"      (fromEnum False) = 0      (fromEnum True) = 1      ([False ..]) = [False,True] diff --git a/ghc/tests/lib/should_run/stableptr001.hs b/ghc/tests/lib/should_run/stableptr001.hs index 42ee1fe58c..98180b5bf4 100644 --- a/ghc/tests/lib/should_run/stableptr001.hs +++ b/ghc/tests/lib/should_run/stableptr001.hs @@ -3,6 +3,7 @@  module Main where  import Foreign +import Stable  -- simple test for building/dereferencing stable ptrs diff --git a/ghc/tests/lib/should_run/stableptr002.hs b/ghc/tests/lib/should_run/stableptr002.hs index 3edcc6c8de..3cd3673a10 100644 --- a/ghc/tests/lib/should_run/stableptr002.hs +++ b/ghc/tests/lib/should_run/stableptr002.hs @@ -1,6 +1,6 @@  module Main where -import PrelStable +import Stable  -- Testing callbacks: the initial haskell thread calls out to C with  -- the address of a Haskell callback.  The C function runs the callback diff --git a/ghc/tests/lib/should_run/stableptr003.hs b/ghc/tests/lib/should_run/stableptr003.hs index 81f12a5c9b..ec3cfa807b 100644 --- a/ghc/tests/lib/should_run/stableptr003.hs +++ b/ghc/tests/lib/should_run/stableptr003.hs @@ -1,6 +1,6 @@  module Main where -import PrelStable +import Stable  main = do    stable_list1 <- mapM makeStableName list diff --git a/ghc/tests/lib/should_run/text001.hs b/ghc/tests/lib/should_run/text001.hs new file mode 100644 index 0000000000..18aab82dd9 --- /dev/null +++ b/ghc/tests/lib/should_run/text001.hs @@ -0,0 +1,15 @@ +{-	Bug report 28 May 99 + +When compiled with ghc-4.02, everything's fine, it outputs "Value 7" as +expected. But compiled with ghc-pre-4.03 it yields this error message. + +   Fail: Prelude.read: no parse +-} + +module Main where + +data Msg = Value Int | Inc   deriving (Show, Read) +   +main = do let v = read "Value 7"::Msg +          print v + diff --git a/ghc/tests/lib/should_run/text001.stdout b/ghc/tests/lib/should_run/text001.stdout new file mode 100644 index 0000000000..a0c782242e --- /dev/null +++ b/ghc/tests/lib/should_run/text001.stdout @@ -0,0 +1 @@ +Value 7 diff --git a/ghc/tests/numeric/should_run/arith011.hs b/ghc/tests/numeric/should_run/arith011.hs index b9312282a1..903bc25497 100644 --- a/ghc/tests/numeric/should_run/arith011.hs +++ b/ghc/tests/numeric/should_run/arith011.hs @@ -10,6 +10,7 @@ main = test  test :: IO ()  test = do +   testIntlikeNoBits "Int"    (0::Int)          testIntlike "Int8"   (0::Int8)          testIntlike "Int16"  (0::Int16)         testIntlike "Int32"  (0::Int32)     @@ -17,8 +18,8 @@ test = do     testIntlike "Word16" (0::Word16)        testIntlike "Word32" (0::Word32)    -testIntlike :: (Bounded a, Integral a, Ix a, Read a, Bits a) => String -> a -> IO () -testIntlike name zero = do +testIntlikeNoBits :: (Bounded a, Integral a, Ix a, Read a) => String -> a -> IO () +testIntlikeNoBits name zero = do    putStrLn $ "--------------------------------"    putStrLn $ "--Testing " ++ name    putStrLn $ "--------------------------------" @@ -30,8 +31,13 @@ testIntlike name zero = do    testNum      zero    testReal     zero    testIntegral zero + + +testIntlike :: (Bounded a, Integral a, Ix a, Read a, Bits a) => String -> a -> IO () +testIntlike name zero = do +  testIntlikeNoBits name zero    testBits     zero -  putStrLn $ "--------------------------------" +  -- In all these tests, zero is a dummy element used to get  -- the overloading to work diff --git a/ghc/tests/numeric/should_run/arith011.stdout b/ghc/tests/numeric/should_run/arith011.stdout index 6b382ce12c..2ca8409a9d 100644 --- a/ghc/tests/numeric/should_run/arith011.stdout +++ b/ghc/tests/numeric/should_run/arith011.stdout @@ -1,4 +1,909 @@  -------------------------------- +--Testing Int +-------------------------------- +testBounded +(2147483647,-2147483648,-2147483647) +(2147483646,2147483647,-2147483648) +testEnum +[0,1,2,3,4,5,6,7,8,9] +[0,2,4,6,8,10,12,14,16,18] +[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20] +[0,2,4,6,8,10,12,14,16,18,20] +testReadShow +[-3,-2,-1,0,1,2,3] +[-3,-2,-1,0,1,2,3] +testEq +-3 == -3 = True +-3 == -2 = False +-3 == -1 = False +-3 == 0 = False +-3 == 1 = False +-3 == 2 = False +-3 == 3 = False +  +-2 == -3 = False +-2 == -2 = True +-2 == -1 = False +-2 == 0 = False +-2 == 1 = False +-2 == 2 = False +-2 == 3 = False +  +-1 == -3 = False +-1 == -2 = False +-1 == -1 = True +-1 == 0 = False +-1 == 1 = False +-1 == 2 = False +-1 == 3 = False +  +0 == -3 = False +0 == -2 = False +0 == -1 = False +0 == 0 = True +0 == 1 = False +0 == 2 = False +0 == 3 = False +  +1 == -3 = False +1 == -2 = False +1 == -1 = False +1 == 0 = False +1 == 1 = True +1 == 2 = False +1 == 3 = False +  +2 == -3 = False +2 == -2 = False +2 == -1 = False +2 == 0 = False +2 == 1 = False +2 == 2 = True +2 == 3 = False +  +3 == -3 = False +3 == -2 = False +3 == -1 = False +3 == 0 = False +3 == 1 = False +3 == 2 = False +3 == 3 = True +  +# +-3 /= -3 = False +-3 /= -2 = True +-3 /= -1 = True +-3 /= 0 = True +-3 /= 1 = True +-3 /= 2 = True +-3 /= 3 = True +  +-2 /= -3 = True +-2 /= -2 = False +-2 /= -1 = True +-2 /= 0 = True +-2 /= 1 = True +-2 /= 2 = True +-2 /= 3 = True +  +-1 /= -3 = True +-1 /= -2 = True +-1 /= -1 = False +-1 /= 0 = True +-1 /= 1 = True +-1 /= 2 = True +-1 /= 3 = True +  +0 /= -3 = True +0 /= -2 = True +0 /= -1 = True +0 /= 0 = False +0 /= 1 = True +0 /= 2 = True +0 /= 3 = True +  +1 /= -3 = True +1 /= -2 = True +1 /= -1 = True +1 /= 0 = True +1 /= 1 = False +1 /= 2 = True +1 /= 3 = True +  +2 /= -3 = True +2 /= -2 = True +2 /= -1 = True +2 /= 0 = True +2 /= 1 = True +2 /= 2 = False +2 /= 3 = True +  +3 /= -3 = True +3 /= -2 = True +3 /= -1 = True +3 /= 0 = True +3 /= 1 = True +3 /= 2 = True +3 /= 3 = False +  +# +testOrd +-3 <= -3 = True +-3 <= -2 = True +-3 <= -1 = True +-3 <= 0 = True +-3 <= 1 = True +-3 <= 2 = True +-3 <= 3 = True +  +-2 <= -3 = False +-2 <= -2 = True +-2 <= -1 = True +-2 <= 0 = True +-2 <= 1 = True +-2 <= 2 = True +-2 <= 3 = True +  +-1 <= -3 = False +-1 <= -2 = False +-1 <= -1 = True +-1 <= 0 = True +-1 <= 1 = True +-1 <= 2 = True +-1 <= 3 = True +  +0 <= -3 = False +0 <= -2 = False +0 <= -1 = False +0 <= 0 = True +0 <= 1 = True +0 <= 2 = True +0 <= 3 = True +  +1 <= -3 = False +1 <= -2 = False +1 <= -1 = False +1 <= 0 = False +1 <= 1 = True +1 <= 2 = True +1 <= 3 = True +  +2 <= -3 = False +2 <= -2 = False +2 <= -1 = False +2 <= 0 = False +2 <= 1 = False +2 <= 2 = True +2 <= 3 = True +  +3 <= -3 = False +3 <= -2 = False +3 <= -1 = False +3 <= 0 = False +3 <= 1 = False +3 <= 2 = False +3 <= 3 = True +  +# +-3 <  -3 = False +-3 <  -2 = True +-3 <  -1 = True +-3 <  0 = True +-3 <  1 = True +-3 <  2 = True +-3 <  3 = True +  +-2 <  -3 = False +-2 <  -2 = False +-2 <  -1 = True +-2 <  0 = True +-2 <  1 = True +-2 <  2 = True +-2 <  3 = True +  +-1 <  -3 = False +-1 <  -2 = False +-1 <  -1 = False +-1 <  0 = True +-1 <  1 = True +-1 <  2 = True +-1 <  3 = True +  +0 <  -3 = False +0 <  -2 = False +0 <  -1 = False +0 <  0 = False +0 <  1 = True +0 <  2 = True +0 <  3 = True +  +1 <  -3 = False +1 <  -2 = False +1 <  -1 = False +1 <  0 = False +1 <  1 = False +1 <  2 = True +1 <  3 = True +  +2 <  -3 = False +2 <  -2 = False +2 <  -1 = False +2 <  0 = False +2 <  1 = False +2 <  2 = False +2 <  3 = True +  +3 <  -3 = False +3 <  -2 = False +3 <  -1 = False +3 <  0 = False +3 <  1 = False +3 <  2 = False +3 <  3 = False +  +# +-3 >  -3 = False +-3 >  -2 = False +-3 >  -1 = False +-3 >  0 = False +-3 >  1 = False +-3 >  2 = False +-3 >  3 = False +  +-2 >  -3 = True +-2 >  -2 = False +-2 >  -1 = False +-2 >  0 = False +-2 >  1 = False +-2 >  2 = False +-2 >  3 = False +  +-1 >  -3 = True +-1 >  -2 = True +-1 >  -1 = False +-1 >  0 = False +-1 >  1 = False +-1 >  2 = False +-1 >  3 = False +  +0 >  -3 = True +0 >  -2 = True +0 >  -1 = True +0 >  0 = False +0 >  1 = False +0 >  2 = False +0 >  3 = False +  +1 >  -3 = True +1 >  -2 = True +1 >  -1 = True +1 >  0 = True +1 >  1 = False +1 >  2 = False +1 >  3 = False +  +2 >  -3 = True +2 >  -2 = True +2 >  -1 = True +2 >  0 = True +2 >  1 = True +2 >  2 = False +2 >  3 = False +  +3 >  -3 = True +3 >  -2 = True +3 >  -1 = True +3 >  0 = True +3 >  1 = True +3 >  2 = True +3 >  3 = False +  +# +-3 >= -3 = True +-3 >= -2 = False +-3 >= -1 = False +-3 >= 0 = False +-3 >= 1 = False +-3 >= 2 = False +-3 >= 3 = False +  +-2 >= -3 = True +-2 >= -2 = True +-2 >= -1 = False +-2 >= 0 = False +-2 >= 1 = False +-2 >= 2 = False +-2 >= 3 = False +  +-1 >= -3 = True +-1 >= -2 = True +-1 >= -1 = True +-1 >= 0 = False +-1 >= 1 = False +-1 >= 2 = False +-1 >= 3 = False +  +0 >= -3 = True +0 >= -2 = True +0 >= -1 = True +0 >= 0 = True +0 >= 1 = False +0 >= 2 = False +0 >= 3 = False +  +1 >= -3 = True +1 >= -2 = True +1 >= -1 = True +1 >= 0 = True +1 >= 1 = True +1 >= 2 = False +1 >= 3 = False +  +2 >= -3 = True +2 >= -2 = True +2 >= -1 = True +2 >= 0 = True +2 >= 1 = True +2 >= 2 = True +2 >= 3 = False +  +3 >= -3 = True +3 >= -2 = True +3 >= -1 = True +3 >= 0 = True +3 >= 1 = True +3 >= 2 = True +3 >= 3 = True +  +# +-3 `compare` -3 = EQ +-3 `compare` -2 = LT +-3 `compare` -1 = LT +-3 `compare` 0 = LT +-3 `compare` 1 = LT +-3 `compare` 2 = LT +-3 `compare` 3 = LT +  +-2 `compare` -3 = GT +-2 `compare` -2 = EQ +-2 `compare` -1 = LT +-2 `compare` 0 = LT +-2 `compare` 1 = LT +-2 `compare` 2 = LT +-2 `compare` 3 = LT +  +-1 `compare` -3 = GT +-1 `compare` -2 = GT +-1 `compare` -1 = EQ +-1 `compare` 0 = LT +-1 `compare` 1 = LT +-1 `compare` 2 = LT +-1 `compare` 3 = LT +  +0 `compare` -3 = GT +0 `compare` -2 = GT +0 `compare` -1 = GT +0 `compare` 0 = EQ +0 `compare` 1 = LT +0 `compare` 2 = LT +0 `compare` 3 = LT +  +1 `compare` -3 = GT +1 `compare` -2 = GT +1 `compare` -1 = GT +1 `compare` 0 = GT +1 `compare` 1 = EQ +1 `compare` 2 = LT +1 `compare` 3 = LT +  +2 `compare` -3 = GT +2 `compare` -2 = GT +2 `compare` -1 = GT +2 `compare` 0 = GT +2 `compare` 1 = GT +2 `compare` 2 = EQ +2 `compare` 3 = LT +  +3 `compare` -3 = GT +3 `compare` -2 = GT +3 `compare` -1 = GT +3 `compare` 0 = GT +3 `compare` 1 = GT +3 `compare` 2 = GT +3 `compare` 3 = EQ +  +# +testNum +-3 + -3 = -6 +-3 + -2 = -5 +-3 + -1 = -4 +-3 + 0 = -3 +-3 + 1 = -2 +-3 + 2 = -1 +-3 + 3 = 0 +  +-2 + -3 = -5 +-2 + -2 = -4 +-2 + -1 = -3 +-2 + 0 = -2 +-2 + 1 = -1 +-2 + 2 = 0 +-2 + 3 = 1 +  +-1 + -3 = -4 +-1 + -2 = -3 +-1 + -1 = -2 +-1 + 0 = -1 +-1 + 1 = 0 +-1 + 2 = 1 +-1 + 3 = 2 +  +0 + -3 = -3 +0 + -2 = -2 +0 + -1 = -1 +0 + 0 = 0 +0 + 1 = 1 +0 + 2 = 2 +0 + 3 = 3 +  +1 + -3 = -2 +1 + -2 = -1 +1 + -1 = 0 +1 + 0 = 1 +1 + 1 = 2 +1 + 2 = 3 +1 + 3 = 4 +  +2 + -3 = -1 +2 + -2 = 0 +2 + -1 = 1 +2 + 0 = 2 +2 + 1 = 3 +2 + 2 = 4 +2 + 3 = 5 +  +3 + -3 = 0 +3 + -2 = 1 +3 + -1 = 2 +3 + 0 = 3 +3 + 1 = 4 +3 + 2 = 5 +3 + 3 = 6 +  +# +-3 - -3 = 0 +-3 - -2 = -1 +-3 - -1 = -2 +-3 - 0 = -3 +-3 - 1 = -4 +-3 - 2 = -5 +-3 - 3 = -6 +  +-2 - -3 = 1 +-2 - -2 = 0 +-2 - -1 = -1 +-2 - 0 = -2 +-2 - 1 = -3 +-2 - 2 = -4 +-2 - 3 = -5 +  +-1 - -3 = 2 +-1 - -2 = 1 +-1 - -1 = 0 +-1 - 0 = -1 +-1 - 1 = -2 +-1 - 2 = -3 +-1 - 3 = -4 +  +0 - -3 = 3 +0 - -2 = 2 +0 - -1 = 1 +0 - 0 = 0 +0 - 1 = -1 +0 - 2 = -2 +0 - 3 = -3 +  +1 - -3 = 4 +1 - -2 = 3 +1 - -1 = 2 +1 - 0 = 1 +1 - 1 = 0 +1 - 2 = -1 +1 - 3 = -2 +  +2 - -3 = 5 +2 - -2 = 4 +2 - -1 = 3 +2 - 0 = 2 +2 - 1 = 1 +2 - 2 = 0 +2 - 3 = -1 +  +3 - -3 = 6 +3 - -2 = 5 +3 - -1 = 4 +3 - 0 = 3 +3 - 1 = 2 +3 - 2 = 1 +3 - 3 = 0 +  +# +-3 * -3 = 9 +-3 * -2 = 6 +-3 * -1 = 3 +-3 * 0 = 0 +-3 * 1 = -3 +-3 * 2 = -6 +-3 * 3 = -9 +  +-2 * -3 = 6 +-2 * -2 = 4 +-2 * -1 = 2 +-2 * 0 = 0 +-2 * 1 = -2 +-2 * 2 = -4 +-2 * 3 = -6 +  +-1 * -3 = 3 +-1 * -2 = 2 +-1 * -1 = 1 +-1 * 0 = 0 +-1 * 1 = -1 +-1 * 2 = -2 +-1 * 3 = -3 +  +0 * -3 = 0 +0 * -2 = 0 +0 * -1 = 0 +0 * 0 = 0 +0 * 1 = 0 +0 * 2 = 0 +0 * 3 = 0 +  +1 * -3 = -3 +1 * -2 = -2 +1 * -1 = -1 +1 * 0 = 0 +1 * 1 = 1 +1 * 2 = 2 +1 * 3 = 3 +  +2 * -3 = -6 +2 * -2 = -4 +2 * -1 = -2 +2 * 0 = 0 +2 * 1 = 2 +2 * 2 = 4 +2 * 3 = 6 +  +3 * -3 = -9 +3 * -2 = -6 +3 * -1 = -3 +3 * 0 = 0 +3 * 1 = 3 +3 * 2 = 6 +3 * 3 = 9 +  +# +negate -3 = 3 +negate -2 = 2 +negate -1 = 1 +negate 0 = 0 +negate 1 = -1 +negate 2 = -2 +negate 3 = -3 +# +testReal +toRational -3 = -3 % 1 +toRational -2 = -2 % 1 +toRational -1 = -1 % 1 +toRational 0 = 0 % 1 +toRational 1 = 1 % 1 +toRational 2 = 2 % 1 +toRational 3 = 3 % 1 +# +testIntegral +-3 `divMod`  -3 = (1,0) +-3 `divMod`  -2 = (1,-1) +-3 `divMod`  -1 = (3,0) +-3 `divMod`  1 = (-3,0) +-3 `divMod`  2 = (-2,1) +-3 `divMod`  3 = (-1,0) +  +-2 `divMod`  -3 = (0,-2) +-2 `divMod`  -2 = (1,0) +-2 `divMod`  -1 = (2,0) +-2 `divMod`  1 = (-2,0) +-2 `divMod`  2 = (-1,0) +-2 `divMod`  3 = (-1,1) +  +-1 `divMod`  -3 = (0,-1) +-1 `divMod`  -2 = (0,-1) +-1 `divMod`  -1 = (1,0) +-1 `divMod`  1 = (-1,0) +-1 `divMod`  2 = (-1,1) +-1 `divMod`  3 = (-1,2) +  +0 `divMod`  -3 = (0,0) +0 `divMod`  -2 = (0,0) +0 `divMod`  -1 = (0,0) +0 `divMod`  1 = (0,0) +0 `divMod`  2 = (0,0) +0 `divMod`  3 = (0,0) +  +1 `divMod`  -3 = (-1,-2) +1 `divMod`  -2 = (-1,-1) +1 `divMod`  -1 = (-1,0) +1 `divMod`  1 = (1,0) +1 `divMod`  2 = (0,1) +1 `divMod`  3 = (0,1) +  +2 `divMod`  -3 = (-1,-1) +2 `divMod`  -2 = (-1,0) +2 `divMod`  -1 = (-2,0) +2 `divMod`  1 = (2,0) +2 `divMod`  2 = (1,0) +2 `divMod`  3 = (0,2) +  +3 `divMod`  -3 = (-1,0) +3 `divMod`  -2 = (-2,-1) +3 `divMod`  -1 = (-3,0) +3 `divMod`  1 = (3,0) +3 `divMod`  2 = (1,1) +3 `divMod`  3 = (1,0) +  +# +-3 `div`     -3 = 1 +-3 `div`     -2 = 1 +-3 `div`     -1 = 3 +-3 `div`     1 = -3 +-3 `div`     2 = -2 +-3 `div`     3 = -1 +  +-2 `div`     -3 = 0 +-2 `div`     -2 = 1 +-2 `div`     -1 = 2 +-2 `div`     1 = -2 +-2 `div`     2 = -1 +-2 `div`     3 = -1 +  +-1 `div`     -3 = 0 +-1 `div`     -2 = 0 +-1 `div`     -1 = 1 +-1 `div`     1 = -1 +-1 `div`     2 = -1 +-1 `div`     3 = -1 +  +0 `div`     -3 = 0 +0 `div`     -2 = 0 +0 `div`     -1 = 0 +0 `div`     1 = 0 +0 `div`     2 = 0 +0 `div`     3 = 0 +  +1 `div`     -3 = -1 +1 `div`     -2 = -1 +1 `div`     -1 = -1 +1 `div`     1 = 1 +1 `div`     2 = 0 +1 `div`     3 = 0 +  +2 `div`     -3 = -1 +2 `div`     -2 = -1 +2 `div`     -1 = -2 +2 `div`     1 = 2 +2 `div`     2 = 1 +2 `div`     3 = 0 +  +3 `div`     -3 = -1 +3 `div`     -2 = -2 +3 `div`     -1 = -3 +3 `div`     1 = 3 +3 `div`     2 = 1 +3 `div`     3 = 1 +  +# +-3 `mod`     -3 = 0 +-3 `mod`     -2 = -1 +-3 `mod`     -1 = 0 +-3 `mod`     1 = 0 +-3 `mod`     2 = 1 +-3 `mod`     3 = 0 +  +-2 `mod`     -3 = -2 +-2 `mod`     -2 = 0 +-2 `mod`     -1 = 0 +-2 `mod`     1 = 0 +-2 `mod`     2 = 0 +-2 `mod`     3 = 1 +  +-1 `mod`     -3 = -1 +-1 `mod`     -2 = -1 +-1 `mod`     -1 = 0 +-1 `mod`     1 = 0 +-1 `mod`     2 = 1 +-1 `mod`     3 = 2 +  +0 `mod`     -3 = 0 +0 `mod`     -2 = 0 +0 `mod`     -1 = 0 +0 `mod`     1 = 0 +0 `mod`     2 = 0 +0 `mod`     3 = 0 +  +1 `mod`     -3 = -2 +1 `mod`     -2 = -1 +1 `mod`     -1 = 0 +1 `mod`     1 = 0 +1 `mod`     2 = 1 +1 `mod`     3 = 1 +  +2 `mod`     -3 = -1 +2 `mod`     -2 = 0 +2 `mod`     -1 = 0 +2 `mod`     1 = 0 +2 `mod`     2 = 0 +2 `mod`     3 = 2 +  +3 `mod`     -3 = 0 +3 `mod`     -2 = -1 +3 `mod`     -1 = 0 +3 `mod`     1 = 0 +3 `mod`     2 = 1 +3 `mod`     3 = 0 +  +# +-3 `quotRem` -3 = (1,0) +-3 `quotRem` -2 = (1,-1) +-3 `quotRem` -1 = (3,0) +-3 `quotRem` 1 = (-3,0) +-3 `quotRem` 2 = (-1,-1) +-3 `quotRem` 3 = (-1,0) +  +-2 `quotRem` -3 = (0,-2) +-2 `quotRem` -2 = (1,0) +-2 `quotRem` -1 = (2,0) +-2 `quotRem` 1 = (-2,0) +-2 `quotRem` 2 = (-1,0) +-2 `quotRem` 3 = (0,-2) +  +-1 `quotRem` -3 = (0,-1) +-1 `quotRem` -2 = (0,-1) +-1 `quotRem` -1 = (1,0) +-1 `quotRem` 1 = (-1,0) +-1 `quotRem` 2 = (0,-1) +-1 `quotRem` 3 = (0,-1) +  +0 `quotRem` -3 = (0,0) +0 `quotRem` -2 = (0,0) +0 `quotRem` -1 = (0,0) +0 `quotRem` 1 = (0,0) +0 `quotRem` 2 = (0,0) +0 `quotRem` 3 = (0,0) +  +1 `quotRem` -3 = (0,1) +1 `quotRem` -2 = (0,1) +1 `quotRem` -1 = (-1,0) +1 `quotRem` 1 = (1,0) +1 `quotRem` 2 = (0,1) +1 `quotRem` 3 = (0,1) +  +2 `quotRem` -3 = (0,2) +2 `quotRem` -2 = (-1,0) +2 `quotRem` -1 = (-2,0) +2 `quotRem` 1 = (2,0) +2 `quotRem` 2 = (1,0) +2 `quotRem` 3 = (0,2) +  +3 `quotRem` -3 = (-1,0) +3 `quotRem` -2 = (-1,1) +3 `quotRem` -1 = (-3,0) +3 `quotRem` 1 = (3,0) +3 `quotRem` 2 = (1,1) +3 `quotRem` 3 = (1,0) +  +# +-3 `quot`    -3 = 1 +-3 `quot`    -2 = 1 +-3 `quot`    -1 = 3 +-3 `quot`    1 = -3 +-3 `quot`    2 = -1 +-3 `quot`    3 = -1 +  +-2 `quot`    -3 = 0 +-2 `quot`    -2 = 1 +-2 `quot`    -1 = 2 +-2 `quot`    1 = -2 +-2 `quot`    2 = -1 +-2 `quot`    3 = 0 +  +-1 `quot`    -3 = 0 +-1 `quot`    -2 = 0 +-1 `quot`    -1 = 1 +-1 `quot`    1 = -1 +-1 `quot`    2 = 0 +-1 `quot`    3 = 0 +  +0 `quot`    -3 = 0 +0 `quot`    -2 = 0 +0 `quot`    -1 = 0 +0 `quot`    1 = 0 +0 `quot`    2 = 0 +0 `quot`    3 = 0 +  +1 `quot`    -3 = 0 +1 `quot`    -2 = 0 +1 `quot`    -1 = -1 +1 `quot`    1 = 1 +1 `quot`    2 = 0 +1 `quot`    3 = 0 +  +2 `quot`    -3 = 0 +2 `quot`    -2 = -1 +2 `quot`    -1 = -2 +2 `quot`    1 = 2 +2 `quot`    2 = 1 +2 `quot`    3 = 0 +  +3 `quot`    -3 = -1 +3 `quot`    -2 = -1 +3 `quot`    -1 = -3 +3 `quot`    1 = 3 +3 `quot`    2 = 1 +3 `quot`    3 = 1 +  +# +-3 `rem`     -3 = 0 +-3 `rem`     -2 = -1 +-3 `rem`     -1 = 0 +-3 `rem`     1 = 0 +-3 `rem`     2 = -1 +-3 `rem`     3 = 0 +  +-2 `rem`     -3 = -2 +-2 `rem`     -2 = 0 +-2 `rem`     -1 = 0 +-2 `rem`     1 = 0 +-2 `rem`     2 = 0 +-2 `rem`     3 = -2 +  +-1 `rem`     -3 = -1 +-1 `rem`     -2 = -1 +-1 `rem`     -1 = 0 +-1 `rem`     1 = 0 +-1 `rem`     2 = -1 +-1 `rem`     3 = -1 +  +0 `rem`     -3 = 0 +0 `rem`     -2 = 0 +0 `rem`     -1 = 0 +0 `rem`     1 = 0 +0 `rem`     2 = 0 +0 `rem`     3 = 0 +  +1 `rem`     -3 = 1 +1 `rem`     -2 = 1 +1 `rem`     -1 = 0 +1 `rem`     1 = 0 +1 `rem`     2 = 1 +1 `rem`     3 = 1 +  +2 `rem`     -3 = 2 +2 `rem`     -2 = 0 +2 `rem`     -1 = 0 +2 `rem`     1 = 0 +2 `rem`     2 = 0 +2 `rem`     3 = 2 +  +3 `rem`     -3 = 0 +3 `rem`     -2 = 1 +3 `rem`     -1 = 0 +3 `rem`     1 = 0 +3 `rem`     2 = 1 +3 `rem`     3 = 0 +  +# +--------------------------------  --Testing Int8  --------------------------------  testBounded @@ -1357,7 +2262,6 @@ isSigned 2 = True  isSigned 3 = True  #  -------------------------------- ---------------------------------  --Testing Int16  --------------------------------  testBounded @@ -2716,7 +3620,6 @@ isSigned 2 = True  isSigned 3 = True  #  -------------------------------- ---------------------------------  --Testing Int32  --------------------------------  testBounded @@ -4075,7 +4978,6 @@ isSigned 2 = True  isSigned 3 = True  #  -------------------------------- ---------------------------------  --Testing Word8  --------------------------------  testBounded @@ -5434,7 +6336,6 @@ isSigned 2 = False  isSigned 3 = False  #  -------------------------------- ---------------------------------  --Testing Word16  --------------------------------  testBounded @@ -6793,7 +7694,6 @@ isSigned 2 = False  isSigned 3 = False  #  -------------------------------- ---------------------------------  --Testing Word32  --------------------------------  testBounded @@ -8151,4 +9051,3 @@ isSigned 1 = False  isSigned 2 = False  isSigned 3 = False  # --------------------------------- diff --git a/ghc/tests/programs/Makefile b/ghc/tests/programs/Makefile index 617e589493..9844376884 100644 --- a/ghc/tests/programs/Makefile +++ b/ghc/tests/programs/Makefile @@ -1,7 +1,7 @@  TOP = .  include $(TOP)/mk/boilerplate.mk -NOT_THESE = CVS mk Makefile \ +NOT_THESE = CVS mk Makefile  NOT_THESE += hill_stk_oflow  #	Correctly fails to terminate @@ -9,7 +9,12 @@ NOT_THESE += hill_stk_oflow  NOT_THESE += ipoole_spec_class  #	Dialogue style IO -#	areid_pass +NOT_THESE += areid_pass +#	Old-style I/O + +NOT_THESE += north_lias +#	Deliberately causes divide by zero, and +#	we can't catch that yet  SUBDIRS = $(filter-out $(NOT_THESE), $(wildcard *)) diff --git a/ghc/tests/programs/barton-mangler-bug/Basic.hs b/ghc/tests/programs/barton-mangler-bug/Basic.hs index ad240f8cfe..5b3d054c50 100644 --- a/ghc/tests/programs/barton-mangler-bug/Basic.hs +++ b/ghc/tests/programs/barton-mangler-bug/Basic.hs @@ -18,7 +18,13 @@ instance Signal (->) where  data {- (Physical a, Physical b) => -} SignalRep a b =     FunctionRep (a -> b) |     PieceContRep (PieceCont a b) -   deriving (Eq, Show) + +instance Eq (SignalRep a b) where +  (==) a b = error "No equality for SignalRep" + +instance Show (SignalRep a b) where +  show sr = error "No show for SignalRep" +  instance Signal SignalRep where    mapSignal (FunctionRep f) = mapSignal f    mapSignal (PieceContRep f) = mapSignal f @@ -64,7 +70,12 @@ data Event =    TimeEvent Float |     FunctionEvent (Float -> Bool) |    BurstEvent Int Event -  deriving (Show) + +instance Show Event where +  show (TimeEvent f) = "TimeEvent " ++ show f +  show (FunctionEvent _) = "FunctionEvent" +  show (BurstEvent i e)  = "BurstEvent " ++ show i ++ " " ++ show e +  instance Eq Event where    (TimeEvent x) == (TimeEvent y) = x == y    (BurstEvent i e) == (BurstEvent i' e') = (i' == i) && (e' == e) diff --git a/ghc/tests/programs/fast2haskell/Word.hs b/ghc/tests/programs/fast2haskell/Word.hs index 4c7091cdcf..9161622083 100644 --- a/ghc/tests/programs/fast2haskell/Word.hs +++ b/ghc/tests/programs/fast2haskell/Word.hs @@ -50,8 +50,8 @@ instance Num Word where  	Word x - Word y = case (w2i x) -# (w2i y) of z -> Word (i2w z)  	Word x * Word y = case (w2i x) *# (w2i y) of z -> Word (i2w z)  	negate (Word x) = case negateInt# (w2i x)  of z -> Word (i2w z) -	fromInteger (J# a# s# d#) -	  = case integer2Int# a# s# d# of { z# -> +	fromInteger i +	  = case fromInteger i of { I# z# ->  	    Word (i2w z#) }  instance Show Word where diff --git a/ghc/tests/programs/fun_insts/Main.hs b/ghc/tests/programs/fun_insts/Main.hs index 286154ccb8..fece8c9c47 100644 --- a/ghc/tests/programs/fun_insts/Main.hs +++ b/ghc/tests/programs/fun_insts/Main.hs @@ -5,6 +5,9 @@ module Main where  instance (Eq a, Eq b) => Eq (a->b) +instance Show (a->b) where +  show f = "<<function>>" +  instance (Num a, Num b) => Num (a->b) where      f + g    = \x -> f x + g x      negate f = \x -> - (f x) diff --git a/ghc/tests/programs/jeff-bug/AQ.hs b/ghc/tests/programs/jeff-bug/AQ.hs index 397f96ccfd..ec86a6761c 100644 --- a/ghc/tests/programs/jeff-bug/AQ.hs +++ b/ghc/tests/programs/jeff-bug/AQ.hs @@ -150,7 +150,7 @@ iterateQueue q f  update q n f     = do { x <- getQVal q n -       ; setQVal q n $ map f x +       ; setQVal q n $ fmap f x         }  ------------------------------------------------------------------------- diff --git a/ghc/tests/programs/jeff-bug/BoundedSet.hs b/ghc/tests/programs/jeff-bug/BoundedSet.hs index 0583ba6f54..b8e8cafb7a 100644 --- a/ghc/tests/programs/jeff-bug/BoundedSet.hs +++ b/ghc/tests/programs/jeff-bug/BoundedSet.hs @@ -14,7 +14,7 @@ module BoundedSet  import LazyST  import Prelude hiding (read) -import List +import List    hiding (insert)  new        :: Int -> ST s (BoundedSet s a) diff --git a/ghc/tests/programs/jeff-bug/Devices.hs b/ghc/tests/programs/jeff-bug/Devices.hs index 96a2940a2f..fd3366c758 100644 --- a/ghc/tests/programs/jeff-bug/Devices.hs +++ b/ghc/tests/programs/jeff-bug/Devices.hs @@ -16,6 +16,7 @@ import LazyST  import Instruction   import Array +import Monad  import StateArray  import Ix @@ -109,8 +110,8 @@ fetch (k,f,lim,memory@(range,_)) pc n    buildPCs :: (Word w, Cell c, Register r, Instruction i) =>              w -> (w,w) -> Trans i (c r w) -> Int -> [Trans i (c r w)]    buildPCs k range pctrans n -    = do p <- map getReg $ T.getDstPC pctrans -         pc <- map getVal $ T.getDstPC pctrans +    = do p <- fmap getReg $ T.getDstPC pctrans +         pc <- fmap getVal $ T.getDstPC pctrans           let pcs = filter (inRange range) $ take n [pc,pc+k .. ]           return $ map (mkPC range) pcs        `catchEx` [] @@ -138,7 +139,7 @@ instrsFetch n convert initContents pcs               let x = getVal reg                guard $ ispc p               return x -           `catchEx` (error "ugh" ) --$ "getpc " ++ show t) +           `catchEx` (error "ugh" ) -- $ "getpc " ++ show t)        insertPCs pcs l = lift2 addPCs pcs l           addPCs x y = zipWith addPC x y        addPC pc (Trans d o s l) = Trans d o s (loc pc:l) @@ -290,7 +291,7 @@ pairRegFile bounds initVals writePorts readPorts  -- I THINK THAT THIS ONE SHOULD GO...  registers src1 src2 p -  = unbundle2 $ map getContents arrResps +  = unbundle2 $ fmap getContents arrResps      where        (writebackContents,writebackReg) = unbundle2 p        arrResps = stateArray ((minBound,maxBound),[(minBound,maxBound,0)]) diff --git a/ghc/tests/programs/jeff-bug/PreludeSig.hs b/ghc/tests/programs/jeff-bug/PreludeSig.hs index f2cd6109d6..b54bbbed92 100644 --- a/ghc/tests/programs/jeff-bug/PreludeSig.hs +++ b/ghc/tests/programs/jeff-bug/PreludeSig.hs @@ -1,8 +1,9 @@  module PreludeSig where -import Prelude(Ord,Bool,MonadZero,Int,($),(.)) +import Prelude(Ord,Bool,Int,($),(.))  import qualified Prelude as P  import qualified List +import Monad  import Signal  -- Begin Signature ---------------------------------------------------- @@ -20,7 +21,7 @@ max :: Ord a => Signal a -> Signal a -> Signal a  min :: Ord a => Signal a -> Signal a -> Signal a  maximum :: Ord a => Signal [a] -> Signal a  minimum :: Ord a => Signal [a] -> Signal a -filter :: MonadZero c => (a -> Bool) -> Signal (c a) -> Signal (c a) +filter :: MonadPlus c => (a -> Bool) -> Signal (c a) -> Signal (c a)  partition :: (a -> Bool) -> Signal [a] -> (Signal [a],Signal [a])  fst :: Signal (a,b) -> Signal a  snd :: Signal (a,b) -> Signal b @@ -44,7 +45,10 @@ maximum = lift1 P.maximum  minimum = lift1 P.minimum -filter x y = lift1 (P.filter x) y +filter p y = lift1 filt y +	   where +	     filt m = do { x <- m; +			   if p x then mzero else return x }  partition x y = unbundle2 (lift1 (List.partition x) y ) diff --git a/ghc/tests/programs/jeff-bug/ROB_retire.hs b/ghc/tests/programs/jeff-bug/ROB_retire.hs index 0080259aa5..b00c78d50b 100644 --- a/ghc/tests/programs/jeff-bug/ROB_retire.hs +++ b/ghc/tests/programs/jeff-bug/ROB_retire.hs @@ -12,6 +12,7 @@ import AQ(AQ)  import RAT(RAT)  import DLX +import Monad  import Utils diff --git a/ghc/tests/programs/jeff-bug/STEx.hs b/ghc/tests/programs/jeff-bug/STEx.hs index cb77722b9c..76ed6fb686 100644 --- a/ghc/tests/programs/jeff-bug/STEx.hs +++ b/ghc/tests/programs/jeff-bug/STEx.hs @@ -1,5 +1,6 @@  module STEx where  import LazyST +import Monad  infixl 1 `handle` @@ -13,7 +14,6 @@ infixl 1 `handle`  {-data STEx s a-}  {-instance Monad (STEx s)-} -{-instance MonadZero (STEx s)-}  {-instance MonadPlus (STEx s)-}  -- c `handle` x, return x if c raises an exception @@ -49,13 +49,11 @@ instance Monad (STEx s) where                                        in z'                              Nothing -> return Nothing -instance MonadZero (STEx s) where -	zero = liftEx zero -  instance MonadPlus (STEx s) where -	(STEx x) ++ (STEx y) = STEx $ do x' <- x -                                         y' <- y -                                         return $ x' ++ y' +	mzero = liftEx mzero +	(STEx x) `mplus` (STEx y) = STEx $ do x' <- x +                        	              y' <- y +                                   	      return $ mplus x' y'  liftST x = STEx $ do {z <- x ; return $ return z}  liftEx x = STEx $ return x diff --git a/ghc/tests/programs/jeff-bug/Signal.hs b/ghc/tests/programs/jeff-bug/Signal.hs index 5498a26040..c4b20402bd 100644 --- a/ghc/tests/programs/jeff-bug/Signal.hs +++ b/ghc/tests/programs/jeff-bug/Signal.hs @@ -1,4 +1,5 @@  module Signal where +import Monad  import LazyST  import List  import Random @@ -212,7 +213,7 @@ instance Integral a => Integral (Signal a) where  (*>=) = lift2 (>=)  (*&&) = lift2 (&&)  (*||) = lift2 (||) -(*++) = lift2 (++) +(*++) = lift2 mplus  (*:)  = lift2 (:)  data Then = Then @@ -241,7 +242,7 @@ newtype Signal a = List [a]          deriving Show  instance Functor Signal where -  map f ~(List as) = List (map f as) +  fmap f ~(List as) = List (map f as)  at ~(List l) n = l!!n @@ -290,9 +291,11 @@ superscalar f (List input) = List (chop lens output)  ------------------------------------------------------------------------  -- Non-determinism -integers = List . unsafePerformIO . randomIO  +-- integers :: (Integer,Integer) -> Signal Integer +integers rng = List (unsafePerformIO (do { g <- newStdGen ; +					   return (randomRs rng g) })) -ints = map toInt . integers . toIntegers +ints = fmap toInt . integers . toIntegers      where      toIntegers (x,y) = (toInteger x,toInteger y) diff --git a/ghc/tests/programs/jeff-bug/Trans.hs b/ghc/tests/programs/jeff-bug/Trans.hs index 29c96c6c43..62cb987d45 100644 --- a/ghc/tests/programs/jeff-bug/Trans.hs +++ b/ghc/tests/programs/jeff-bug/Trans.hs @@ -312,7 +312,7 @@ rawHazard (preceeding,following)  filterDst f (Trans d _ _ _) = filter f d  --added 19 Nov -filterOut f = map (filter $ not . f) +filterOut f = fmap (filter $ not . f)  fillInCells cells bypassCells    = repCells (\x y -> (not $ isAss y) && cellHazard x y) cells bypassCells diff --git a/ghc/tests/programs/life_space_leak/Makefile b/ghc/tests/programs/life_space_leak/Makefile index cc14abc6b2..00783e530d 100644 --- a/ghc/tests/programs/life_space_leak/Makefile +++ b/ghc/tests/programs/life_space_leak/Makefile @@ -1,7 +1,7 @@  TOP = ..  include $(TOP)/mk/boilerplate.mk -SRC_RUNTEST_OPTS += -prescript ./life.test +SRC_RUNTEST_OPTS += -prescript "./life.test  all :: runtest diff --git a/ghc/tests/programs/north_lias/Main.lhs b/ghc/tests/programs/north_lias/Main.lhs index 3f4a4373ac..46c23877b9 100644 --- a/ghc/tests/programs/north_lias/Main.lhs +++ b/ghc/tests/programs/north_lias/Main.lhs @@ -17,7 +17,9 @@ used in expressions, but does not determine the characteristics.  > maxInt, minInt :: Int  > maxInt = maxBound -> minInt = minBound +> minInt = minBound + 1		-- NOTA BENE: this program does (minInt `rem` (-1)), and +>				-- that gives an exception if minInt = minBound, +>				-- because the result of the division is too big to fit  > main  =  (initial_checks flp_parms . main_identities flp_parms .  >           notification_checks flp_parms) (return ()) @@ -102,20 +104,20 @@ AN element has the form  >     | i /= j  =  showits "Integer operation check number " .  >                  showit test_number . showits " fails with " .  >                  showit i . showits " ". showit j . new_line ->     | True    =  id +>     | True    =  showits "Integer operation check number " . showit test_number . showits " ok " . new_line  > equal_flp :: (RealFloat a) => (a, a, Int) -> Cont -> Cont  > equal_flp (x, y, test_number)  >     | x /= y  =  showits "Floating point operation check number " .  >                  showit test_number . showits " fails" . new_line .  >                  showit x . showits " " . showit y . new_line ->     | True    =  id +>     | True    =  showits "Floating operation check number " . showit test_number . showits " ok " . new_line  > test_true :: (Bool, Int) -> Cont -> Cont  > test_true (b, test_number)  >     | not b  =  showits "Predicate number " . showit test_number .  >                 showits " fails " .  showit b . new_line ->     | True    =  id +>     | True   =  showits "Predicate number " . showit test_number . showits " ok " . new_line  > -- This procedure checks that sqrt(y*y) = y when y*y is exact   > check_exact_squares :: (RealFloat a) => FloatParms a -> Cont -> Cont diff --git a/ghc/tests/programs/okeefe_neural/Main.hs b/ghc/tests/programs/okeefe_neural/Main.hs index 5c6cffa22d..35c5c82b43 100644 --- a/ghc/tests/programs/okeefe_neural/Main.hs +++ b/ghc/tests/programs/okeefe_neural/Main.hs @@ -121,7 +121,7 @@ train pats i_h_wt i_h_ch h_o_wt h_o_ch epochs s =            out_err = vscale (vsub out_pat out_act) out_act            hid_err = vscale (vmmul out_err h_o_wt) hid_act -main = ans +main = putStrLn (show ans)      where (in1,out1)   = head patterns            nin          = length in1            nhid         = nin diff --git a/ghc/tests/reader/should_compile/MyList.hi b/ghc/tests/reader/should_compile/MyList.hi index b92cd0fccc..07777f3648 100644 --- a/ghc/tests/reader/should_compile/MyList.hi +++ b/ghc/tests/reader/should_compile/MyList.hi @@ -1,6 +1,5 @@  __interface MyList 1 0 where +__export MyList MyList{Empty ZCZCZC};  import PrelBase 16 :: addr2Integer 1 foldr 1 int2Integer 1 integer_0 1 integer_1 1 integer_2 1 integer_m1 1;  import PrelPack 15 :: packCStringzh 1 unpackAppendCStringzh 1 unpackCStringzh 1 unpackFoldrCStringzh 1 unpackNByteszh 1; -__instimport IO ; __instimport PrelAddr ; __instimport PrelArr ; __instimport PrelBounded ; __instimport PrelCCall ; __instimport PrelConc ; __instimport PrelForeign ; __instimport PrelIOBase ; __instimport PrelNum ; __instimport PrelNumExtra ; __instimport PrelStable ; __instimport PrelTup ; -__export MyList MyList{Empty ZCZCZC};  2 data MyList a = Empty |  ZCZCZC (MyList a) (MyList a) ; diff --git a/ghc/tests/reader/should_compile/read012.stderr b/ghc/tests/reader/should_compile/read012.stderr index e375ede56f..591ad122e5 100644 --- a/ghc/tests/reader/should_compile/read012.stderr +++ b/ghc/tests/reader/should_compile/read012.stderr @@ -1 +1 @@ -ghc: module version changed to 1; reason: no old .hi file +ghc: module version unchanged at 1 diff --git a/ghc/tests/reader/should_fail/expr001.hs b/ghc/tests/reader/should_fail/expr001.hs index 49853a74cf..03b34d9776 100644 --- a/ghc/tests/reader/should_fail/expr001.hs +++ b/ghc/tests/reader/should_fail/expr001.hs @@ -6,6 +6,7 @@ Date: Wed, 9 Oct 91 17:31:46 BST  OK, I've fixed that little problem by disallowing,  -} +module Test where  f x = x + if c then 1 else 2  f x = x + 1::Int diff --git a/ghc/tests/reader/should_fail/expr001.stderr b/ghc/tests/reader/should_fail/expr001.stderr index 8b8731c8c3..53883ace1a 100644 --- a/ghc/tests/reader/should_fail/expr001.stderr +++ b/ghc/tests/reader/should_fail/expr001.stderr @@ -1,13 +1,13 @@  ==================== Reader ==================== -module Main where +module Test where  {- rec -}  f x = x zp (if c then 1 else 2)  f x = x zp 1 :: Int -expr001.hs:10: Variable not in scope: `c' +expr001.hs:11: Variable not in scope: `c'  Compilation had errors diff --git a/ghc/tests/rename/should_fail/rnfail001.stderr b/ghc/tests/rename/should_fail/rnfail001.stderr index 5f6ddc5fc0..1b68fe45da 100644 --- a/ghc/tests/rename/should_fail/rnfail001.stderr +++ b/ghc/tests/rename/should_fail/rnfail001.stderr @@ -1,8 +1,7 @@  rnfail001.hs:3:      Conflicting definitions for `x' -    in a pattern - +    in a pattern type-signature  Compilation had errors diff --git a/ghc/tests/rename/should_fail/rnfail002.stderr b/ghc/tests/rename/should_fail/rnfail002.stderr index 75ba87bf76..58f13b735c 100644 --- a/ghc/tests/rename/should_fail/rnfail002.stderr +++ b/ghc/tests/rename/should_fail/rnfail002.stderr @@ -4,6 +4,5 @@ rnfail002.hs:4:  	defined at rnfail002.hs:5  	defined at rnfail002.hs:6 -  Compilation had errors diff --git a/ghc/tests/rename/should_fail/rnfail003.stderr b/ghc/tests/rename/should_fail/rnfail003.stderr index 61ffb25a6c..04fffdb527 100644 --- a/ghc/tests/rename/should_fail/rnfail003.stderr +++ b/ghc/tests/rename/should_fail/rnfail003.stderr @@ -4,6 +4,5 @@ rnfail003.hs:2:  	defined at rnfail003.hs:2  	defined at rnfail003.hs:4 -  Compilation had errors diff --git a/ghc/tests/rename/should_fail/rnfail004.stderr b/ghc/tests/rename/should_fail/rnfail004.stderr index 5a256e72ac..50197739e7 100644 --- a/ghc/tests/rename/should_fail/rnfail004.stderr +++ b/ghc/tests/rename/should_fail/rnfail004.stderr @@ -7,6 +7,5 @@ rnfail004.hs:7:      Conflicting definitions for `b'      in a binding group -  Compilation had errors diff --git a/ghc/tests/rename/should_fail/rnfail007.stderr b/ghc/tests/rename/should_fail/rnfail007.stderr index d3c6a49154..4a25ef3f1e 100644 --- a/ghc/tests/rename/should_fail/rnfail007.stderr +++ b/ghc/tests/rename/should_fail/rnfail007.stderr @@ -1,6 +1,5 @@ -rnfail007.hs:3: Module `Main' must include a definition for `main' - +rnfail007.hs:3: Variable not in scope: `Main.main'  Compilation had errors diff --git a/ghc/tests/rename/should_fail/rnfail008.stderr b/ghc/tests/rename/should_fail/rnfail008.stderr index 044582f545..deaaaaa3a5 100644 --- a/ghc/tests/rename/should_fail/rnfail008.stderr +++ b/ghc/tests/rename/should_fail/rnfail008.stderr @@ -1,6 +1,5 @@  rnfail008.hs:18: Variable not in scope: `op3' -  Compilation had errors diff --git a/ghc/tests/rename/should_fail/rnfail009.stderr b/ghc/tests/rename/should_fail/rnfail009.stderr index 066aaef0c0..dd67a9fe0e 100644 --- a/ghc/tests/rename/should_fail/rnfail009.stderr +++ b/ghc/tests/rename/should_fail/rnfail009.stderr @@ -4,6 +4,5 @@ rnfail009.hs:1:  	defined at rnfail009.hs:3  	defined at rnfail009.hs:5 -  Compilation had errors diff --git a/ghc/tests/rename/should_fail/rnfail010.stderr b/ghc/tests/rename/should_fail/rnfail010.stderr index 2137a44790..12e987c892 100644 --- a/ghc/tests/rename/should_fail/rnfail010.stderr +++ b/ghc/tests/rename/should_fail/rnfail010.stderr @@ -4,6 +4,5 @@ rnfail010.hs:2:  	defined at rnfail010.hs:2  	defined at rnfail010.hs:6 -  Compilation had errors diff --git a/ghc/tests/rename/should_fail/rnfail011.stderr b/ghc/tests/rename/should_fail/rnfail011.stderr index 5bae7600f5..3b6fe95d1c 100644 --- a/ghc/tests/rename/should_fail/rnfail011.stderr +++ b/ghc/tests/rename/should_fail/rnfail011.stderr @@ -4,6 +4,5 @@ rnfail011.hs:2:  	defined at rnfail011.hs:2  	defined at rnfail011.hs:6 -  Compilation had errors diff --git a/ghc/tests/rename/should_fail/rnfail012.stderr b/ghc/tests/rename/should_fail/rnfail012.stderr index 0f5e86f02f..cd668c8d34 100644 --- a/ghc/tests/rename/should_fail/rnfail012.stderr +++ b/ghc/tests/rename/should_fail/rnfail012.stderr @@ -4,6 +4,5 @@ rnfail012.hs:2:  	defined at rnfail012.hs:3  	defined at rnfail012.hs:9 -  Compilation had errors diff --git a/ghc/tests/rename/should_fail/rnfail013.stderr b/ghc/tests/rename/should_fail/rnfail013.stderr index 2e7f52a46a..f3079f58bb 100644 --- a/ghc/tests/rename/should_fail/rnfail013.stderr +++ b/ghc/tests/rename/should_fail/rnfail013.stderr @@ -4,6 +4,5 @@ rnfail013.hs:3:  	defined at rnfail013.hs:7  	defined at rnfail013.hs:9 -  Compilation had errors diff --git a/ghc/tests/rename/should_fail/rnfail014.stderr b/ghc/tests/rename/should_fail/rnfail014.stderr index ed49f1d02e..30d68e94a4 100644 --- a/ghc/tests/rename/should_fail/rnfail014.stderr +++ b/ghc/tests/rename/should_fail/rnfail014.stderr @@ -1,34 +1,18 @@  rnfail014.hs:9: -    The constraint `Eq a' does not mention any of -	the universally quantified type variables {} -	of the type `Eq Bool' -    In the type signature for an instance decl - -rnfail014.hs:9: -    The constraint `Eq a' -	mentions type variables that do not appear in the type -	`Eq Bool' +    None of the type variable(s) in the constraint `Eq a' +	appears in the type `Eq Bool'      In the type signature for an instance decl  rnfail014.hs:12: -    The constraint `Eq a' does not mention any of -	the universally quantified type variables {} -	of the type `Int -> Int' -    In the type signature for `f' - -rnfail014.hs:12: -    The constraint `Eq a' -	mentions type variables that do not appear in the type -	`Int -> Int' +    None of the type variable(s) in the constraint `Eq a' +	appears in the type `Int -> Int'      In the type signature for `f'  rnfail014.hs:17: -    The constraint `Eq a' does not mention any of -	the universally quantified type variables {} -	of the type `a -> a' +    None of the type variable(s) in the constraint `Eq a' +	appears in the type `a -> a'      In the type signature for `op' -  Compilation had errors diff --git a/ghc/tests/rename/should_fail/rnfail015.stderr b/ghc/tests/rename/should_fail/rnfail015.stderr index 184c750393..1cb559f5a3 100644 --- a/ghc/tests/rename/should_fail/rnfail015.stderr +++ b/ghc/tests/rename/should_fail/rnfail015.stderr @@ -3,6 +3,5 @@ rnfail015.hs:9:      Conflicting definitions for `TokLiteral'      in the data type declaration for `Token' -  Compilation had errors diff --git a/ghc/tests/typecheck/should_compile/tc001.stderr b/ghc/tests/typecheck/should_compile/tc001.stderr index 8763364fbb..037caa18ca 100644 --- a/ghc/tests/typecheck/should_compile/tc001.stderr +++ b/ghc/tests/typecheck/should_compile/tc001.stderr @@ -1,3 +1,3 @@  ghc: module version changed to 1; reason: no old .hi file  __export ShouldSucceed a; -1 a :: __forall [a] => {PrelBase.Num a} -> a -> a ; +1 a :: __forall [a] => {PrelNum.Num a} -> a -> a ; diff --git a/ghc/tests/typecheck/should_compile/tc005.stderr b/ghc/tests/typecheck/should_compile/tc005.stderr index e18dd0f1b0..1e957b8219 100644 --- a/ghc/tests/typecheck/should_compile/tc005.stderr +++ b/ghc/tests/typecheck/should_compile/tc005.stderr @@ -1,3 +1,3 @@  ghc: module version changed to 1; reason: no old .hi file  __export ShouldSucceed g; -1 g :: __forall [t t1] => {PrelBase.Num t1} -> ([t1], t) -> t1 ; +1 g :: __forall [t t1] => {PrelNum.Num t1} -> ([t1], t) -> t1 ; diff --git a/ghc/tests/typecheck/should_compile/tc008.stderr b/ghc/tests/typecheck/should_compile/tc008.stderr index e2c095d5c9..246a6674e7 100644 --- a/ghc/tests/typecheck/should_compile/tc008.stderr +++ b/ghc/tests/typecheck/should_compile/tc008.stderr @@ -1,3 +1,3 @@  ghc: module version changed to 1; reason: no old .hi file  __export ShouldSucceed n; -1 n :: __forall [t] => {PrelBase.Num t} -> PrelBase.Bool -> t ; +1 n :: __forall [t] => {PrelNum.Num t} -> PrelBase.Bool -> t ; diff --git a/ghc/tests/typecheck/should_compile/tc009.stderr b/ghc/tests/typecheck/should_compile/tc009.stderr index 2b9b12048c..2ce12af92d 100644 --- a/ghc/tests/typecheck/should_compile/tc009.stderr +++ b/ghc/tests/typecheck/should_compile/tc009.stderr @@ -1,3 +1,3 @@  ghc: module version changed to 1; reason: no old .hi file  __export ShouldSucceed o; -1 o :: __forall [a] => {PrelBase.Num a} -> (PrelBase.Bool, a) -> a ; +1 o :: __forall [a] => {PrelNum.Num a} -> (PrelBase.Bool, a) -> a ; diff --git a/ghc/tests/typecheck/should_compile/tc034.stderr b/ghc/tests/typecheck/should_compile/tc034.stderr index 1fddd61722..ff8612fcd5 100644 --- a/ghc/tests/typecheck/should_compile/tc034.stderr +++ b/ghc/tests/typecheck/should_compile/tc034.stderr @@ -1,5 +1,5 @@  ghc: module version changed to 1; reason: no old .hi file  __export ShouldSucceed AList{ANull ANode} IntList g;  1 data AList a = ANull |  ANode a (AList a) ; -1 g :: __forall [t] => {PrelBase.Num t} -> AList PrelBase.Bool -> t ; +1 g :: __forall [t] => {PrelNum.Num t} -> AList PrelBase.Bool -> t ;  1 type IntList = AList PrelBase.Int ; diff --git a/ghc/tests/typecheck/should_compile/tc038.stderr b/ghc/tests/typecheck/should_compile/tc038.stderr index e8da6c2976..3eccaf215f 100644 --- a/ghc/tests/typecheck/should_compile/tc038.stderr +++ b/ghc/tests/typecheck/should_compile/tc038.stderr @@ -1,3 +1,3 @@  ghc: module version changed to 1; reason: no old .hi file  __export ShouldSucceed f; -1 f :: __forall [a] => {PrelBase.Num a} -> {PrelBase.Eq a} -> [a] -> [a] ; +1 f :: __forall [a] => {PrelNum.Num a} -> {PrelBase.Eq a} -> [a] -> [a] ; diff --git a/ghc/tests/typecheck/should_compile/tc048.stderr b/ghc/tests/typecheck/should_compile/tc048.stderr index 4a33211e26..c3f5a8da27 100644 --- a/ghc/tests/typecheck/should_compile/tc048.stderr +++ b/ghc/tests/typecheck/should_compile/tc048.stderr @@ -1,9 +1,9 @@  ghc: module version changed to 1; reason: no old .hi file  __export ShouldSucceed AFE{MkAFE} FG{MkFG} OL{MkOL} mAp ranAFE ranOAL sNd; -1 data AFE n a b = MkAFE (OL (n, FG a b)) ; -1 data FG a b = MkFG (OL (a, b)) ; +1 data AFE n a b = MkAFE (OL  (n, FG  a b)) ; +1 data FG a b = MkFG (OL  (a, b)) ;  1 data OL a = MkOL [a] ;  1 mAp :: __forall [t t1] => (t -> t1) -> [t] -> [t1] ; -1 ranAFE :: __forall [n a b] => AFE n a b -> [FG a b] ; -1 ranOAL :: __forall [a v] => OL (a, v) -> [v] ; +1 ranAFE :: __forall [n a b] => AFE n a b -> [FG  a b] ; +1 ranOAL :: __forall [a v] => OL  (a, v) -> [v] ;  1 sNd :: __forall [t t1] => (t, t1) -> t1 ; diff --git a/ghc/tests/typecheck/should_compile/tc049.stderr b/ghc/tests/typecheck/should_compile/tc049.stderr index dc06f59110..1cb829d182 100644 --- a/ghc/tests/typecheck/should_compile/tc049.stderr +++ b/ghc/tests/typecheck/should_compile/tc049.stderr @@ -1,6 +1,6 @@  ghc: module version changed to 1; reason: no old .hi file  __export ShouldSucceed fib main1 main2 main3 mem mem1 mem2 mem3 mem4 oR oR1; -1 fib :: __forall [a] => {PrelBase.Num a} -> {PrelBase.Ord a} -> a -> a ; +1 fib :: __forall [a] => {PrelNum.Num a} -> {PrelBase.Ord a} -> a -> a ;  1 main1 :: PrelBase.Bool ;  1 main2 :: PrelBase.Bool ;  1 main3 :: PrelBase.Bool ; diff --git a/ghc/tests/typecheck/should_compile/tc050.stderr b/ghc/tests/typecheck/should_compile/tc050.stderr index 3d24f91e32..391ae0fce0 100644 --- a/ghc/tests/typecheck/should_compile/tc050.stderr +++ b/ghc/tests/typecheck/should_compile/tc050.stderr @@ -4,6 +4,6 @@ instance {Foo PrelBase.Bool} = zdfFooBool;  instance {Foo PrelBase.Int} = zdfFooInt;  1 class Foo a where {o_and :: a -> a -> a} ;  1 f :: __forall [t] => PrelBase.Bool -> t -> PrelBase.Bool ; -1 g :: __forall [t a] => {PrelBase.Num a} -> {Foo a} -> a -> t -> a ; +1 g :: __forall [t a] => {PrelNum.Num a} -> {Foo a} -> a -> t -> a ;  1 zdfFooBool :: {Foo PrelBase.Bool} ;  1 zdfFooInt :: {Foo PrelBase.Int} ; diff --git a/ghc/tests/typecheck/should_compile/tc052.stderr b/ghc/tests/typecheck/should_compile/tc052.stderr index fb1ffea0a8..6c5d6fc7de 100644 --- a/ghc/tests/typecheck/should_compile/tc052.stderr +++ b/ghc/tests/typecheck/should_compile/tc052.stderr @@ -1,5 +1,5 @@  ghc: module version changed to 1; reason: no old .hi file  __export ShouldSucceed A B C; -1 type A a = B a ; +1 type A a = B   a ;  1 type B c = C ;  1 type C = PrelBase.Int ; diff --git a/ghc/tests/typecheck/should_compile/tc053.stderr b/ghc/tests/typecheck/should_compile/tc053.stderr index 8618c30af2..6fe016381b 100644 --- a/ghc/tests/typecheck/should_compile/tc053.stderr +++ b/ghc/tests/typecheck/should_compile/tc053.stderr @@ -3,6 +3,6 @@ __export ShouldSucceed Eqzq{deq} f;  instance {Eqzq PrelBase.Int} = zdfEqzqInt;  instance __forall [a] => {Eqzq a} -> {Eqzq [a]} = zdfEqzqZMZN;  1 class Eqzq a where {deq :: a -> a -> PrelBase.Bool} ; -1 f :: __forall [t] => {PrelBase.Num t} -> {Eqzq [t]} -> [t] -> PrelBase.Bool ; +1 f :: __forall [t] => {PrelNum.Num t} -> {Eqzq [t]} -> [t] -> PrelBase.Bool ;  1 zdfEqzqInt :: {Eqzq PrelBase.Int} ;  1 zdfEqzqZMZN :: __forall [a] => {Eqzq a} -> {Eqzq [a]} ; diff --git a/ghc/tests/typecheck/should_compile/tc054.stderr b/ghc/tests/typecheck/should_compile/tc054.stderr index a889e1ced2..ee2f112abf 100644 --- a/ghc/tests/typecheck/should_compile/tc054.stderr +++ b/ghc/tests/typecheck/should_compile/tc054.stderr @@ -4,6 +4,6 @@ instance {Eqzq PrelBase.Int} = zdfEqzqInt;  instance {Ordzq PrelBase.Int} = zdfOrdzqInt;  1 class Eqzq a where {doubleeq :: a -> a -> PrelBase.Bool} ;  1 class {Eqzq a}  => Ordzq a where {lt :: a -> a -> PrelBase.Bool} ; -1 f :: __forall [t a] => {PrelBase.Num a} -> {Ordzq a} -> a -> t -> PrelBase.Bool ; +1 f :: __forall [t a] => {PrelNum.Num a} -> {Ordzq a} -> a -> t -> PrelBase.Bool ;  1 zdfEqzqInt :: {Eqzq PrelBase.Int} ;  1 zdfOrdzqInt :: {Ordzq PrelBase.Int} ; diff --git a/ghc/tests/typecheck/should_compile/tc056.stderr b/ghc/tests/typecheck/should_compile/tc056.stderr index 61998cc0a3..40c11083fc 100644 --- a/ghc/tests/typecheck/should_compile/tc056.stderr +++ b/ghc/tests/typecheck/should_compile/tc056.stderr @@ -8,6 +8,6 @@ instance {Eqzq PrelBase.Int} = zdfEqzqInt;  instance __forall [a] => {Eqzq a} -> {Eqzq a} -> {Eqzq [a]} = zdfEqzqZMZN;  1 class Eqzq a where {doubleeq :: a -> a -> PrelBase.Bool} ;  1 class {Eqzq a}  => Ordzq a where {lt :: a -> a -> PrelBase.Bool} ; -1 f :: __forall [t t1] => {PrelBase.Num t1} -> {Eqzq [t1]} -> [t1] -> t -> PrelBase.Bool ; +1 f :: __forall [t t1] => {PrelNum.Num t1} -> {Eqzq [t1]} -> [t1] -> t -> PrelBase.Bool ;  1 zdfEqzqInt :: {Eqzq PrelBase.Int} ;  1 zdfEqzqZMZN :: __forall [a] => {Eqzq a} -> {Eqzq [a]} ; diff --git a/ghc/tests/typecheck/should_compile/tc058.stderr b/ghc/tests/typecheck/should_compile/tc058.stderr index 74a990a4d1..6ab1040961 100644 --- a/ghc/tests/typecheck/should_compile/tc058.stderr +++ b/ghc/tests/typecheck/should_compile/tc058.stderr @@ -5,7 +5,7 @@ instance __forall [a] => {Eq2 a} -> {Ord2 a} -> {Eq2 [a]} = zdfEq2ZMZN;  instance {Ord2 PrelBase.Int} = zdfOrd2Int;  1 class Eq2 a where {doubleeq :: a -> a -> PrelBase.Bool} ;  1 class {Eq2 a}  => Ord2 a where {lt :: a -> a -> PrelBase.Bool} ; -1 f :: __forall [t t1] => {PrelBase.Num t1} -> {Eq2 [t1]} -> [t1] -> t -> PrelBase.Bool ; +1 f :: __forall [t t1] => {PrelNum.Num t1} -> {Eq2 [t1]} -> [t1] -> t -> PrelBase.Bool ;  1 zdfEq2Int :: {Eq2 PrelBase.Int} ;  1 zdfEq2ZMZN :: __forall [a] => {Eq2 a} -> {Ord2 a} -> {Eq2 [a]} ;  1 zdfOrd2Int :: {Ord2 PrelBase.Int} ; diff --git a/ghc/tests/typecheck/should_compile/tc059.stderr b/ghc/tests/typecheck/should_compile/tc059.stderr index acab588619..5372979e59 100644 --- a/ghc/tests/typecheck/should_compile/tc059.stderr +++ b/ghc/tests/typecheck/should_compile/tc059.stderr @@ -3,6 +3,6 @@ __export ShouldSucceed Eq2{foo deq} f;  instance {Eq2 PrelBase.Int} = zdfEq2Int;  instance __forall [a] => {Eq2 a} -> {Eq2 [a]} = zdfEq2ZMZN;  1 class Eq2 a where {foo :: a -> a; deq :: a -> a -> PrelBase.Bool} ; -1 f :: __forall [t] => {PrelBase.Num t} -> {Eq2 [t]} -> [t] -> PrelBase.Bool ; +1 f :: __forall [t] => {PrelNum.Num t} -> {Eq2 [t]} -> [t] -> PrelBase.Bool ;  1 zdfEq2Int :: {Eq2 PrelBase.Int} ;  1 zdfEq2ZMZN :: __forall [a] => {Eq2 a} -> {Eq2 [a]} ; diff --git a/ghc/tests/typecheck/should_compile/tc063.stderr b/ghc/tests/typecheck/should_compile/tc063.stderr index 6ef53ae2dc..db2cef51d5 100644 --- a/ghc/tests/typecheck/should_compile/tc063.stderr +++ b/ghc/tests/typecheck/should_compile/tc063.stderr @@ -1,9 +1,9 @@  ghc: module version changed to 1; reason: no old .hi file  __export ShouldSucceed Reps{f} X{Tag} g;  instance {Reps PrelBase.Bool} = zdfRepsBool; -instance __forall [q] => {Reps (X q)} = zdfRepsX; +instance __forall [q] => {Reps (X   q)} = zdfRepsX;  1 class Reps r where {f :: r -> r -> r} ;  1 data X a = Tag a ;  1 g :: __forall [r] => {Reps r} -> r -> r ;  1 zdfRepsBool :: {Reps PrelBase.Bool} ; -1 zdfRepsX :: __forall [q] => {Reps (X q)} ; +1 zdfRepsX :: __forall [q] => {Reps (X   q)} ; diff --git a/ghc/tests/typecheck/should_compile/tc065.hs b/ghc/tests/typecheck/should_compile/tc065.hs index 1cc308eee9..8ea71eec9d 100644 --- a/ghc/tests/typecheck/should_compile/tc065.hs +++ b/ghc/tests/typecheck/should_compile/tc065.hs @@ -1,6 +1,6 @@  module ShouldSucceed where -import TheUtils +-- import TheUtils  import Set  import List (partition ) diff --git a/ghc/tests/typecheck/should_compile/tc068.stderr b/ghc/tests/typecheck/should_compile/tc068.stderr index 080ebff082..235416f355 100644 --- a/ghc/tests/typecheck/should_compile/tc068.stderr +++ b/ghc/tests/typecheck/should_compile/tc068.stderr @@ -1,8 +1,8 @@  ghc: module version changed to 1; reason: no old .hi file  __export ShouldSucceed B{X Y} T{D C}; -instance __forall [b] => {PrelBase.Eq b} -> {PrelBase.Eq (B b)} = zdfEqB; -instance __forall [a] => {PrelBase.Eq a} -> {PrelBase.Eq (T a)} = zdfEqT; +instance __forall [b] => {PrelBase.Eq b} -> {PrelBase.Eq (B   b)} = zdfEqB; +instance __forall [a] => {PrelBase.Eq a} -> {PrelBase.Eq (T   a)} = zdfEqT;  1 data B b = X |  Y b ; -1 data T a = D (B a) |  C ; -1 zdfEqB :: __forall [b] => {PrelBase.Eq b} -> {PrelBase.Eq (B b)} ; -1 zdfEqT :: __forall [a] => {PrelBase.Eq a} -> {PrelBase.Eq (T a)} ; +1 data T a = D (B   a) |  C ; +1 zdfEqB :: __forall [b] => {PrelBase.Eq b} -> {PrelBase.Eq (B   b)} ; +1 zdfEqT :: __forall [a] => {PrelBase.Eq a} -> {PrelBase.Eq (T   a)} ; diff --git a/ghc/tests/typecheck/should_compile/tc074.stderr b/ghc/tests/typecheck/should_compile/tc074.stderr index 080ebff082..235416f355 100644 --- a/ghc/tests/typecheck/should_compile/tc074.stderr +++ b/ghc/tests/typecheck/should_compile/tc074.stderr @@ -1,8 +1,8 @@  ghc: module version changed to 1; reason: no old .hi file  __export ShouldSucceed B{X Y} T{D C}; -instance __forall [b] => {PrelBase.Eq b} -> {PrelBase.Eq (B b)} = zdfEqB; -instance __forall [a] => {PrelBase.Eq a} -> {PrelBase.Eq (T a)} = zdfEqT; +instance __forall [b] => {PrelBase.Eq b} -> {PrelBase.Eq (B   b)} = zdfEqB; +instance __forall [a] => {PrelBase.Eq a} -> {PrelBase.Eq (T   a)} = zdfEqT;  1 data B b = X |  Y b ; -1 data T a = D (B a) |  C ; -1 zdfEqB :: __forall [b] => {PrelBase.Eq b} -> {PrelBase.Eq (B b)} ; -1 zdfEqT :: __forall [a] => {PrelBase.Eq a} -> {PrelBase.Eq (T a)} ; +1 data T a = D (B   a) |  C ; +1 zdfEqB :: __forall [b] => {PrelBase.Eq b} -> {PrelBase.Eq (B   b)} ; +1 zdfEqT :: __forall [a] => {PrelBase.Eq a} -> {PrelBase.Eq (T   a)} ; diff --git a/ghc/tests/typecheck/should_compile/tc077.stderr b/ghc/tests/typecheck/should_compile/tc077.stderr index 54d30b4a9a..a889edf3da 100644 --- a/ghc/tests/typecheck/should_compile/tc077.stderr +++ b/ghc/tests/typecheck/should_compile/tc077.stderr @@ -1,5 +1,5 @@  ghc: module version changed to 1; reason: no old .hi file  __export ShouldSucceed EQ{zezeze} NUM{ONE TWO} ORD; -1 class {ORD a, PrelBase.Show a}  => EQ a where {zezeze :: a -> a -> PrelBase.Bool} ; -1 class {PrelBase.Num a}  => ORD a ; +1 class {ORD a, PrelShow.Show a}  => EQ a where {zezeze :: a -> a -> PrelBase.Bool} ; +1 class {PrelNum.Num a}  => ORD a ;  1 data NUM = ONE |  TWO ; diff --git a/ghc/tests/typecheck/should_compile/tc081.stderr b/ghc/tests/typecheck/should_compile/tc081.stderr index 4831739631..99f69aacb1 100644 --- a/ghc/tests/typecheck/should_compile/tc081.stderr +++ b/ghc/tests/typecheck/should_compile/tc081.stderr @@ -1,5 +1,5 @@  ghc: module version changed to 1; reason: no old .hi file  __export ShouldSucceed f f2 f3; -1 f :: __forall [a] => {PrelBase.Ord a} -> {PrelBase.Num a} -> a -> (a, PrelBase.Bool, [PrelBase.Bool], [PrelBase.Char]) ; -1 f2 :: __forall [a] => {PrelBase.Ord a} -> {PrelBase.Num a} -> a -> (a, PrelBase.Bool, [PrelBase.Bool], [PrelBase.Char]) ; -1 f3 :: __forall [a] => {PrelBase.Ord a} -> {PrelBase.Num a} -> a -> (a, PrelBase.Bool, [PrelBase.Bool], [PrelBase.Char]) ; +1 f :: __forall [a] => {PrelBase.Ord a} -> {PrelNum.Num a} -> a -> (a, PrelBase.Bool, [PrelBase.Bool], [PrelBase.Char]) ; +1 f2 :: __forall [a] => {PrelBase.Ord a} -> {PrelNum.Num a} -> a -> (a, PrelBase.Bool, [PrelBase.Bool], [PrelBase.Char]) ; +1 f3 :: __forall [a] => {PrelBase.Ord a} -> {PrelNum.Num a} -> a -> (a, PrelBase.Bool, [PrelBase.Bool], [PrelBase.Char]) ; diff --git a/ghc/tests/typecheck/should_compile/tc084.stderr b/ghc/tests/typecheck/should_compile/tc084.stderr index 1a659a387b..93226ea14d 100644 --- a/ghc/tests/typecheck/should_compile/tc084.stderr +++ b/ghc/tests/typecheck/should_compile/tc084.stderr @@ -1,5 +1,5 @@  ghc: module version changed to 1; reason: no old .hi file  __export ShouldSucceed f g h;  1 f :: __forall [b] => PrelBase.Int -> b -> PrelBase.Int ; -1 g :: __forall [a b] => {PrelBase.Num a} -> PrelBase.Bool -> a -> b -> a ; +1 g :: __forall [a b] => {PrelNum.Num a} -> PrelBase.Bool -> a -> b -> a ;  1 h :: __forall [b] => b -> PrelBase.Int -> PrelBase.Int ; diff --git a/ghc/tests/typecheck/should_compile/tc087.stderr b/ghc/tests/typecheck/should_compile/tc087.stderr index cc7e6a92e8..09f4679a5d 100644 --- a/ghc/tests/typecheck/should_compile/tc087.stderr +++ b/ghc/tests/typecheck/should_compile/tc087.stderr @@ -3,8 +3,8 @@ __export ShouldSucceed PriorityQueue{splitMin meld insert single empty} SeqView{  1 check :: __forall [q :: (* -> *)] => {PriorityQueue q} -> (__forall [a] => {PrelBase.Ord a} -> q a) -> PrelIOBase.IO PrelBase.Z0T ;  1 class PriorityQueue q :: (* -> *) where {splitMin :: __forall [a] => {PrelBase.Ord a} -> q a -> SeqView q a; meld :: __forall [a] => {PrelBase.Ord a} -> q a -> q a -> q a; insert = :: __forall [a] => {PrelBase.Ord a} -> a -> q a -> q a; single :: __forall [a] => {PrelBase.Ord a} -> a -> q a; empty :: __forall [a] => {PrelBase.Ord a} -> q a} ;  1 data SeqView t :: (* -> *) a = Null |  Cons a (t a) ; -1 insertMany :: __forall [a q :: (* -> *)] => {PrelBase.Ord a} -> {PriorityQueue q} -> [a] -> q a -> q a ; -1 out :: __forall [a] => {PrelBase.Num a} -> [a] -> PrelIOBase.IO PrelBase.Z0T ; +1 insertMany :: __forall [q :: (* -> *) a] => {PrelBase.Ord a} -> {PriorityQueue q} -> [a] -> q a -> q a ; +1 out :: __forall [a] => {PrelNum.Num a} -> [a] -> PrelIOBase.IO PrelBase.Z0T ;  1 pqSort :: __forall [a t :: (* -> *)] => {PriorityQueue t} -> {PrelBase.Ord a} -> t a -> [a] -> [a] ;  1 toOrderedList :: __forall [t :: (* -> *) a] => {PrelBase.Ord a} -> {PriorityQueue t} -> t a -> [a] ;  1 zddminsert :: __forall [q :: (* -> *)] => {PriorityQueue q} -> (__forall [a] => {PrelBase.Ord a} -> a -> q a -> q a) ; diff --git a/ghc/tests/typecheck/should_compile/tc088.hs b/ghc/tests/typecheck/should_compile/tc088.hs index 5423200d1a..ce4b6beab6 100644 --- a/ghc/tests/typecheck/should_compile/tc088.hs +++ b/ghc/tests/typecheck/should_compile/tc088.hs @@ -2,6 +2,8 @@  module ShouldSucceed where +instance Show (a->b) +  instance (Eq b) => Eq (a -> b) where  	(==) f g = error "attempt to compare functions" diff --git a/ghc/tests/typecheck/should_compile/tc088.stderr b/ghc/tests/typecheck/should_compile/tc088.stderr index cfbee790fd..0a2be5179d 100644 --- a/ghc/tests/typecheck/should_compile/tc088.stderr +++ b/ghc/tests/typecheck/should_compile/tc088.stderr @@ -1,5 +1,7 @@  ghc: module version changed to 1; reason: no old .hi file  instance __forall [a b] => {PrelBase.Eq b} -> {PrelBase.Eq (a -> b)} = zdfEqZLzmzgZR; -instance __forall [a b] => {PrelBase.Num b} -> {PrelBase.Num (a -> b)} = zdfNumZLzmzgZR; +instance __forall [a b] => {PrelNum.Num b} -> {PrelNum.Num (a -> b)} = zdfNumZLzmzgZR; +instance __forall [a b] => {PrelShow.Show (a -> b)} = zdfShowZLzmzgZR;  1 zdfEqZLzmzgZR :: __forall [a b] => {PrelBase.Eq b} -> {PrelBase.Eq (a -> b)} ; -1 zdfNumZLzmzgZR :: __forall [a b] => {PrelBase.Num b} -> {PrelBase.Eq (a -> b)} -> {PrelBase.Show (a -> b)} -> {PrelBase.Num (a -> b)} ; +1 zdfNumZLzmzgZR :: __forall [a b] => {PrelNum.Num b} -> {PrelBase.Eq (a -> b)} -> {PrelShow.Show (a -> b)} -> {PrelNum.Num (a -> b)} ; +1 zdfShowZLzmzgZR :: __forall [a b] => {PrelShow.Show (a -> b)} ; diff --git a/ghc/tests/typecheck/should_compile/tc093.stderr b/ghc/tests/typecheck/should_compile/tc093.stderr index 8f5cf27a2d..e888d1a610 100644 --- a/ghc/tests/typecheck/should_compile/tc093.stderr +++ b/ghc/tests/typecheck/should_compile/tc093.stderr @@ -2,14 +2,14 @@ ghc: module version changed to 1; reason: no old .hi file  __export ShouldSucceed St State{State} TS{TS vs} bindState foo unState unitState;  instance {PrelBase.Eq TS} = zdfEqTS;  instance __forall [c] => {PrelBase.Eq c} -> {PrelBase.Monad (State c)} = zdfMonadState; -instance {PrelBase.Show TS} = zdfShowTS; +instance {PrelShow.Show TS} = zdfShowTS;  1 bindState :: __forall [c a b] => State c a -> (a -> State c b) -> State c b ;  1 data State c a = State (c -> (a, c)) ;  1 data TS = TS {vs :: PrelBase.Int} ; -1 foo :: PrelBase.Int -> St PrelBase.Int ; +1 foo :: PrelBase.Int -> St  PrelBase.Int ;  1 type St a = State TS a ;  1 unState :: __forall [c a] => State c a -> c -> (a, c) ;  1 unitState :: __forall [a c] => a -> State c a ;  1 zdfEqTS :: {PrelBase.Eq TS} ;  1 zdfMonadState :: __forall [c] => {PrelBase.Eq c} -> {PrelBase.Monad (State c)} ; -1 zdfShowTS :: {PrelBase.Show TS} ; +1 zdfShowTS :: {PrelShow.Show TS} ; diff --git a/ghc/tests/typecheck/should_compile/tc095.stderr b/ghc/tests/typecheck/should_compile/tc095.stderr index 68bcaa5e96..db90d1a324 100644 --- a/ghc/tests/typecheck/should_compile/tc095.stderr +++ b/ghc/tests/typecheck/should_compile/tc095.stderr @@ -1,12 +1,12 @@  NOTE: Simplifier still going after 4 iterations; bailing out.  ghc: module version changed to 1; reason: no old .hi file  __export ShouldSucceed HappyAbsSyn{HappyTerminal HappyErrorToken HappyAbsSyn1 HappyAbsSyn2 HappyAbsSyn3} HappyState{HappyState} Token{TokenInt TokenVar TokenEq} action_0 action_1 action_2 action_3 action_4 action_5 action_6 happyAccept happyError happyFail happyGoto happyMonadReduce happyNewToken happyParse happyReduce happyReduce_1 happyReduce_2 happyReduce_3 happyReturn happyShift happySpecReduce_0 happySpecReduce_1 happySpecReduce_2 happySpecReduce_3 happyThen main myparser notHappyAtAll; -instance {PrelBase.Show Token} = zdfShowToken; -1 action_0 :: __forall [t t1] => {PrelBase.Num t} -> t -> PrelBase.Int -> Token -> HappyState Token ([HappyAbsSyn (t1 -> PrelBase.Double) [(PrelBase.String, t1 -> PrelBase.Int)] (t1 -> PrelBase.Int)] -> [Token] -> t1 -> PrelBase.Double) -> [HappyState Token ([HappyAbsSyn (t1 -> PrelBase.Double) [(PrelBase.String, t1 -> PrelBase.Int)] (t1 -> PrelBase.Int)] -> [Token] -> t1 -> PrelBase.Double)] -> [HappyAbsSyn (t1 -> PrelBase.Double) [(PrelBase.String, t1 -> PrelBase.Int)] (t1 -> PrelBase.Int)] -> [Token] -> t1 -> PrelBase.Double ; -1 action_1 :: __forall [t t1 t2 t3 b] => {PrelBase.Num t} -> t -> PrelBase.Int -> b -> HappyState b ([HappyAbsSyn t1 t2 t3] -> [Token] -> t1) -> [HappyState b ([HappyAbsSyn t1 t2 t3] -> [Token] -> t1)] -> [HappyAbsSyn t1 t2 t3] -> [Token] -> t1 ; +instance {PrelShow.Show Token} = zdfShowToken; +1 action_0 :: __forall [t t1] => {PrelNum.Num t} -> t -> PrelBase.Int -> Token -> HappyState Token ([HappyAbsSyn (t1 -> PrelBase.Double) [(PrelBase.String, t1 -> PrelBase.Int)] (t1 -> PrelBase.Int)] -> [Token] -> t1 -> PrelBase.Double) -> [HappyState Token ([HappyAbsSyn (t1 -> PrelBase.Double) [(PrelBase.String, t1 -> PrelBase.Int)] (t1 -> PrelBase.Int)] -> [Token] -> t1 -> PrelBase.Double)] -> [HappyAbsSyn (t1 -> PrelBase.Double) [(PrelBase.String, t1 -> PrelBase.Int)] (t1 -> PrelBase.Int)] -> [Token] -> t1 -> PrelBase.Double ; +1 action_1 :: __forall [t t1 t2 t3 b] => {PrelNum.Num t} -> t -> PrelBase.Int -> b -> HappyState b ([HappyAbsSyn t1 t2 t3] -> [Token] -> t1) -> [HappyState b ([HappyAbsSyn t1 t2 t3] -> [Token] -> t1)] -> [HappyAbsSyn t1 t2 t3] -> [Token] -> t1 ;  1 action_2 :: __forall [t t1 b t2 t3 t4 t5 t31] => t -> PrelBase.Int -> b -> t2 -> [HappyState b ([HappyAbsSyn (t3 -> PrelBase.Double) [(t4, t3 -> t5)] t31] -> t1)] -> [HappyAbsSyn (t3 -> PrelBase.Double) [(t4, t3 -> t5)] t31] -> t1 ; -1 action_3 :: __forall [t t1 t11 a] => {PrelBase.Num t} -> t -> PrelBase.Int -> Token -> HappyState Token ([HappyAbsSyn t1 [(PrelBase.String, t11 -> PrelBase.Int)] (t11 -> PrelBase.Int)] -> [Token] -> a) -> [HappyState Token ([HappyAbsSyn t1 [(PrelBase.String, t11 -> PrelBase.Int)] (t11 -> PrelBase.Int)] -> [Token] -> a)] -> [HappyAbsSyn t1 [(PrelBase.String, t11 -> PrelBase.Int)] (t11 -> PrelBase.Int)] -> [Token] -> a ; -1 action_4 :: __forall [t t1 t11 a] => {PrelBase.Num t} -> t -> PrelBase.Int -> Token -> HappyState Token ([HappyAbsSyn t1 [(PrelBase.String, t11 -> PrelBase.Int)] (t11 -> PrelBase.Int)] -> [Token] -> a) -> [HappyState Token ([HappyAbsSyn t1 [(PrelBase.String, t11 -> PrelBase.Int)] (t11 -> PrelBase.Int)] -> [Token] -> a)] -> [HappyAbsSyn t1 [(PrelBase.String, t11 -> PrelBase.Int)] (t11 -> PrelBase.Int)] -> [Token] -> a ; +1 action_3 :: __forall [t t1 t11 a] => {PrelNum.Num t} -> t -> PrelBase.Int -> Token -> HappyState Token ([HappyAbsSyn t1 [(PrelBase.String, t11 -> PrelBase.Int)] (t11 -> PrelBase.Int)] -> [Token] -> a) -> [HappyState Token ([HappyAbsSyn t1 [(PrelBase.String, t11 -> PrelBase.Int)] (t11 -> PrelBase.Int)] -> [Token] -> a)] -> [HappyAbsSyn t1 [(PrelBase.String, t11 -> PrelBase.Int)] (t11 -> PrelBase.Int)] -> [Token] -> a ; +1 action_4 :: __forall [t t1 t11 a] => {PrelNum.Num t} -> t -> PrelBase.Int -> Token -> HappyState Token ([HappyAbsSyn t1 [(PrelBase.String, t11 -> PrelBase.Int)] (t11 -> PrelBase.Int)] -> [Token] -> a) -> [HappyState Token ([HappyAbsSyn t1 [(PrelBase.String, t11 -> PrelBase.Int)] (t11 -> PrelBase.Int)] -> [Token] -> a)] -> [HappyAbsSyn t1 [(PrelBase.String, t11 -> PrelBase.Int)] (t11 -> PrelBase.Int)] -> [Token] -> a ;  1 action_5 :: __forall [t t1 b t2 t11 t3] => t -> PrelBase.Int -> b -> t2 -> [HappyState b ([HappyAbsSyn t11 [(PrelBase.String, t3)] t3] -> t1)] -> [HappyAbsSyn t11 [(PrelBase.String, t3)] t3] -> t1 ;  1 action_6 :: __forall [t t1 b t2 t11 t21 t3] => t -> PrelBase.Int -> b -> t2 -> [HappyState b ([HappyAbsSyn t11 t21 (t3 -> PrelBase.Int)] -> t1)] -> [HappyAbsSyn t11 t21 (t3 -> PrelBase.Int)] -> t1 ;  1 data HappyAbsSyn t1 t2 t3 = HappyTerminal Token |  HappyErrorToken PrelBase.Int |  HappyAbsSyn1 t1 |  HappyAbsSyn2 t2 |  HappyAbsSyn3 t3 ; @@ -24,7 +24,7 @@ instance {PrelBase.Show Token} = zdfShowToken;  1 happyReduce_2 :: __forall [t b t1 t11 t3] => PrelBase.Int -> b -> t1 -> [HappyState b ([HappyAbsSyn t11 [(PrelBase.String, t3)] t3] -> t)] -> [HappyAbsSyn t11 [(PrelBase.String, t3)] t3] -> t ;  1 happyReduce_3 :: __forall [t b t1 t11 t2 t21] => PrelBase.Int -> b -> t1 -> [HappyState b ([HappyAbsSyn t11 t2 (t21 -> PrelBase.Int)] -> t)] -> [HappyAbsSyn t11 t2 (t21 -> PrelBase.Int)] -> t ;  1 happyReturn :: __forall [t t1] => t -> t1 -> t ; -1 happyShift :: __forall [t t1 t2 t3 t11] => {PrelBase.Num t} -> (PrelBase.Int -> PrelBase.Int -> Token -> HappyState Token ([HappyAbsSyn t1 t2 t3] -> [Token] -> t11) -> [HappyState Token ([HappyAbsSyn t1 t2 t3] -> [Token] -> t11)] -> [HappyAbsSyn t1 t2 t3] -> [Token] -> t11) -> t -> Token -> HappyState Token ([HappyAbsSyn t1 t2 t3] -> [Token] -> t11) -> [HappyState Token ([HappyAbsSyn t1 t2 t3] -> [Token] -> t11)] -> [HappyAbsSyn t1 t2 t3] -> [Token] -> t11 ; +1 happyShift :: __forall [t t1 t2 t3 t11] => {PrelNum.Num t} -> (PrelBase.Int -> PrelBase.Int -> Token -> HappyState Token ([HappyAbsSyn t1 t2 t3] -> [Token] -> t11) -> [HappyState Token ([HappyAbsSyn t1 t2 t3] -> [Token] -> t11)] -> [HappyAbsSyn t1 t2 t3] -> [Token] -> t11) -> t -> Token -> HappyState Token ([HappyAbsSyn t1 t2 t3] -> [Token] -> t11) -> [HappyState Token ([HappyAbsSyn t1 t2 t3] -> [Token] -> t11)] -> [HappyAbsSyn t1 t2 t3] -> [Token] -> t11 ;  1 happySpecReduce_0 :: __forall [t a b] => PrelBase.Int -> t -> PrelBase.Int -> b -> HappyState b ([t] -> [Token] -> a) -> [HappyState b ([t] -> [Token] -> a)] -> [t] -> [Token] -> a ;  1 happySpecReduce_1 :: __forall [t b t1 t2] => PrelBase.Int -> (t1 -> t1) -> PrelBase.Int -> b -> t -> [HappyState b ([t1] -> t2)] -> [t1] -> t2 ;  1 happySpecReduce_2 :: __forall [t b t1 t2] => PrelBase.Int -> (t1 -> t1 -> t1) -> PrelBase.Int -> b -> t -> [HappyState b ([t1] -> t2)] -> [t1] -> t2 ; @@ -33,4 +33,4 @@ instance {PrelBase.Show Token} = zdfShowToken;  1 main :: PrelIOBase.IO PrelBase.Z0T ;  1 myparser :: __forall [t] => [Token] -> t -> PrelBase.Double ;  1 notHappyAtAll :: __forall [t] => t ; -1 zdfShowToken :: {PrelBase.Show Token} ; +1 zdfShowToken :: {PrelShow.Show Token} ; diff --git a/ghc/tests/typecheck/should_compile/tc098.stderr b/ghc/tests/typecheck/should_compile/tc098.stderr index 5859c9abb9..2633b80752 100644 --- a/ghc/tests/typecheck/should_compile/tc098.stderr +++ b/ghc/tests/typecheck/should_compile/tc098.stderr @@ -1,6 +1,6 @@  ghc: module version changed to 1; reason: no old .hi file  __export ShouldSucceed Cp cpPairs m mp; -1 cpPairs :: __forall [j a] => Cp [j] -> (a, [j]) -> (a, [j]) -> PrelBase.Ordering ; -1 m :: __forall [a] => {PrelBase.Eq a} -> Cp a -> [a] -> a ; -1 mp :: __forall [j i] => {PrelBase.Eq i} -> {PrelBase.Eq j} -> Cp [j] -> [(i, [j])] -> (i, [j]) ; +1 cpPairs :: __forall [j a] => Cp  [j] -> (a, [j]) -> (a, [j]) -> PrelBase.Ordering ; +1 m :: __forall [a] => {PrelBase.Eq a} -> Cp  a -> [a] -> a ; +1 mp :: __forall [j i] => {PrelBase.Eq i} -> {PrelBase.Eq j} -> Cp  [j] -> [(i, [j])] -> (i, [j]) ;  1 type Cp a = a -> a -> PrelBase.Ordering ; diff --git a/ghc/tests/typecheck/should_compile/tc100.stderr b/ghc/tests/typecheck/should_compile/tc100.stderr index 38fcf81087..46f80b1844 100644 --- a/ghc/tests/typecheck/should_compile/tc100.stderr +++ b/ghc/tests/typecheck/should_compile/tc100.stderr @@ -1,5 +1,5 @@  ghc: module version changed to 1; reason: no old .hi file  __export ShouldCompile C D{DD} D_; -1 newtype D a = DD (D_ a) ; -1 type C a = D a -> a ; -1 type D_ a = C (PrelMaybe.Maybe a) ; +1 newtype D a = DD (D_  a) ; +1 type C a = D   a -> a ; +1 type D_ a = C   (PrelMaybe.Maybe a) ; diff --git a/ghc/tests/typecheck/should_fail/Digraph.stderr b/ghc/tests/typecheck/should_fail/Digraph.stderr index 4c217aeec7..e9b777447c 100644 --- a/ghc/tests/typecheck/should_fail/Digraph.stderr +++ b/ghc/tests/typecheck/should_fail/Digraph.stderr @@ -2,12 +2,12 @@  Digraph.hs:19:      Inferred type is less polymorphic than expected  	Quantified type variable `v' escapes -	It unifies with `vertex', which is mentioned in the environment -	The following variables in the environment mention `vertex' -	    es :: [Edge vertex] -	    vs :: [vertex] +	It is mentioned in the environment +	The following variables in the environment mention `v' +	    es :: [Edge v] +	    vs :: [v]      When checking the type signature -	reversed_edges :: forall v1. {Eq v1} => [Edge v1] +	reversed_edges :: forall v1. (Eq v1) => [Edge v1]      In an equation for function `stronglyConnComp':  	stronglyConnComp es vs  			   = snd (span_tree (new_range reversed_edges) @@ -30,7 +30,5 @@ Digraph.hs:19:  			       reversed_edges :: forall v. (Eq v) => [Edge v]  			       reversed_edges = map swap es - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail001.stderr b/ghc/tests/typecheck/should_fail/tcfail001.stderr index 376d3a0d06..46a704bf3b 100644 --- a/ghc/tests/typecheck/should_fail/tcfail001.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail001.stderr @@ -3,8 +3,6 @@ tcfail001.hs:9:      Warning: Duplicate class assertion `A a' in the context:  		 (A a, A a) => ... - -  tcfail001.hs:9:      Couldn't match `[a]' against `t -> t1'  	Expected type: [a] @@ -12,7 +10,5 @@ tcfail001.hs:9:      In an equation for function `op': op [] = []      In the definition for method `op' - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail002.stderr b/ghc/tests/typecheck/should_fail/tcfail002.stderr index 410a1ad05c..9dc37d1443 100644 --- a/ghc/tests/typecheck/should_fail/tcfail002.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail002.stderr @@ -5,7 +5,5 @@ tcfail002.hs:4:  	Inferred type: [t]      In the right-hand side of an equation for `c': z - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail003.stderr b/ghc/tests/typecheck/should_fail/tcfail003.stderr index 7650b3b6c7..811e2754c2 100644 --- a/ghc/tests/typecheck/should_fail/tcfail003.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail003.stderr @@ -3,7 +3,5 @@ tcfail003.hs:3:      No instance for `Num Char'  	arising from the literal `1' at tcfail003.hs:3 - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail004.stderr b/ghc/tests/typecheck/should_fail/tcfail004.stderr index 66feb42842..459b08c0b0 100644 --- a/ghc/tests/typecheck/should_fail/tcfail004.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail004.stderr @@ -5,7 +5,5 @@ tcfail004.hs:3:  	Inferred type: (t2, t3, t4)      In the right-hand side of a pattern binding: (1, 2, 3) - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail005.stderr b/ghc/tests/typecheck/should_fail/tcfail005.stderr index 7ed8275d66..258e41d791 100644 --- a/ghc/tests/typecheck/should_fail/tcfail005.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail005.stderr @@ -5,7 +5,5 @@ tcfail005.hs:3:  	Inferred type: (t1, t2)      In the right-hand side of a pattern binding: (1, 'a') - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail006.stderr b/ghc/tests/typecheck/should_fail/tcfail006.stderr index 9815c5a610..71f71558ec 100644 --- a/ghc/tests/typecheck/should_fail/tcfail006.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail006.stderr @@ -3,7 +3,5 @@ tcfail006.hs:4:      No instance for `Num Bool'  	arising from the literal `1' at tcfail006.hs:4 - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail007.stderr b/ghc/tests/typecheck/should_fail/tcfail007.stderr index b823d9abd8..0dd23484c4 100644 --- a/ghc/tests/typecheck/should_fail/tcfail007.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail007.stderr @@ -3,7 +3,5 @@ tcfail007.hs:3:      No instance for `Num Bool'  	arising from use of `+' at tcfail007.hs:3 - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail008.stderr b/ghc/tests/typecheck/should_fail/tcfail008.stderr index 9b2dee0f72..974fa4af4c 100644 --- a/ghc/tests/typecheck/should_fail/tcfail008.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail008.stderr @@ -9,7 +9,5 @@ tcfail008.hs:3:  	in the constraint `Num t'  	arising from the literal `1' at tcfail008.hs:3 - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail009.stderr b/ghc/tests/typecheck/should_fail/tcfail009.stderr index dd3c85e21a..a91cbbbd72 100644 --- a/ghc/tests/typecheck/should_fail/tcfail009.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail009.stderr @@ -5,7 +5,5 @@ tcfail009.hs:3:  	Inferred type: Int      In an expression with a type signature: 2 :: Integer - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail010.stderr b/ghc/tests/typecheck/should_fail/tcfail010.stderr index affb03e0a2..25fb03f8e9 100644 --- a/ghc/tests/typecheck/should_fail/tcfail010.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail010.stderr @@ -4,7 +4,5 @@ tcfail010.hs:3:  	in the constraint `Num [t]'  	arising from use of `+' at tcfail010.hs:3 - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail011.stderr b/ghc/tests/typecheck/should_fail/tcfail011.stderr index d86d2c973f..348dcb2fc2 100644 --- a/ghc/tests/typecheck/should_fail/tcfail011.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail011.stderr @@ -1,7 +1,5 @@  tcfail011.hs:3: Variable not in scope: `y' - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail012.stderr b/ghc/tests/typecheck/should_fail/tcfail012.stderr index 1bd5c89c6e..ea50af117f 100644 --- a/ghc/tests/typecheck/should_fail/tcfail012.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail012.stderr @@ -5,7 +5,5 @@ tcfail012.hs:3:  	Inferred type: [t]      In the right-hand side of a pattern binding: [] - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail013.stderr b/ghc/tests/typecheck/should_fail/tcfail013.stderr index 429fefc624..cc92015049 100644 --- a/ghc/tests/typecheck/should_fail/tcfail013.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail013.stderr @@ -6,7 +6,5 @@ tcfail013.hs:4:      In the pattern: True      In an equation for function `f': f True = 2 - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail014.stderr b/ghc/tests/typecheck/should_fail/tcfail014.stderr index 5812e986ab..08b902e5e6 100644 --- a/ghc/tests/typecheck/should_fail/tcfail014.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail014.stderr @@ -6,7 +6,5 @@ tcfail014.hs:5:      In the first argument of `z', namely `z'      In the right-hand side of an equation for `h': z z - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail015.stderr b/ghc/tests/typecheck/should_fail/tcfail015.stderr index ab90aa6348..c088740d41 100644 --- a/ghc/tests/typecheck/should_fail/tcfail015.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail015.stderr @@ -3,7 +3,5 @@ tcfail015.hs:7:      No instance for `Num Bool'  	arising from the literal `2' at tcfail015.hs:7 - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail016.stderr b/ghc/tests/typecheck/should_fail/tcfail016.stderr index af0d5f2847..799b9ed067 100644 --- a/ghc/tests/typecheck/should_fail/tcfail016.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail016.stderr @@ -6,7 +6,5 @@ tcfail016.hs:9:      In the first argument of `g', namely `e1'      In the first argument of `++', namely `(g e1)' - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail017.stderr b/ghc/tests/typecheck/should_fail/tcfail017.stderr index 3ebb93c2b0..7ab93fd684 100644 --- a/ghc/tests/typecheck/should_fail/tcfail017.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail017.stderr @@ -7,7 +7,5 @@ tcfail017.hs:11:  		    or missing instance declaration for `C [a]'      When checking the superclasses of an instance declaration - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail018.stderr b/ghc/tests/typecheck/should_fail/tcfail018.stderr index 565d1e97e9..6dcb28ed28 100644 --- a/ghc/tests/typecheck/should_fail/tcfail018.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail018.stderr @@ -4,7 +4,5 @@ tcfail018.hs:5:  	in the constraint `Num [t]'  	arising from the literal `1' at tcfail018.hs:5 - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail019.stderr b/ghc/tests/typecheck/should_fail/tcfail019.stderr index 9eda575a69..00a227f2e1 100644 --- a/ghc/tests/typecheck/should_fail/tcfail019.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail019.stderr @@ -15,7 +15,5 @@ tcfail019.hs:19:  		    or missing instance declaration for `B [a]'      When checking the superclasses of an instance declaration - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail020.stderr b/ghc/tests/typecheck/should_fail/tcfail020.stderr index 78405f701a..c0097501a8 100644 --- a/ghc/tests/typecheck/should_fail/tcfail020.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail020.stderr @@ -7,7 +7,5 @@ tcfail020.hs:11:  		    or missing instance declaration for `A [a]'      When checking the superclasses of an instance declaration - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail021.stderr b/ghc/tests/typecheck/should_fail/tcfail021.stderr index 0d6371ccb1..ffe454472b 100644 --- a/ghc/tests/typecheck/should_fail/tcfail021.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail021.stderr @@ -3,7 +3,5 @@ tcfail021.hs:8:      Can't handle multiple methods defined by one pattern binding  	(==, /=) = (\ x -> \ y -> ..., \ x -> \ y -> ...) - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail023.stderr b/ghc/tests/typecheck/should_fail/tcfail023.stderr index 47f1cba48f..3e1dc47671 100644 --- a/ghc/tests/typecheck/should_fail/tcfail023.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail023.stderr @@ -15,7 +15,5 @@ tcfail023.hs:14:  	Inferred type: Bool      In the right-hand side of an equation for `op': True - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail027.hs b/ghc/tests/typecheck/should_fail/tcfail027.hs index b847c06ce6..e01f6961bd 100644 --- a/ghc/tests/typecheck/should_fail/tcfail027.hs +++ b/ghc/tests/typecheck/should_fail/tcfail027.hs @@ -1,4 +1,5 @@  -- !!! tests for CycleErr in classes +module TcFail where  class (B a) => A a where   op1 :: a -> a diff --git a/ghc/tests/typecheck/should_fail/tcfail027.stderr b/ghc/tests/typecheck/should_fail/tcfail027.stderr index 806100ba36..cc1e5b16fb 100644 --- a/ghc/tests/typecheck/should_fail/tcfail027.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail027.stderr @@ -1,10 +1,8 @@ -tcfail027.hs:3: +tcfail027.hs:2:      Cycle in class declarations: -	`B' at tcfail027.hs:7 -	`A' at tcfail027.hs:4 - - +	`B' at tcfail027.hs:8 +	`A' at tcfail027.hs:5  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail028.hs b/ghc/tests/typecheck/should_fail/tcfail028.hs index 3fb22ffb7c..5f9b32c07f 100644 --- a/ghc/tests/typecheck/should_fail/tcfail028.hs +++ b/ghc/tests/typecheck/should_fail/tcfail028.hs @@ -1,3 +1,4 @@  -- !!! tests for ArityErr +module TcFail where  data A a b = B (A a) diff --git a/ghc/tests/typecheck/should_fail/tcfail028.stderr b/ghc/tests/typecheck/should_fail/tcfail028.stderr index dbede23e2f..639349533c 100644 --- a/ghc/tests/typecheck/should_fail/tcfail028.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail028.stderr @@ -1,12 +1,10 @@ -tcfail028.hs:4: +tcfail028.hs:5:      Couldn't match `Type t' against `k -> *'  	Expected kind: Type t  	Inferred kind: k -> *      When checking that `A a' is a type      In the newtype declaration for `A' - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail029.stderr b/ghc/tests/typecheck/should_fail/tcfail029.stderr index 3c2874d502..7e83c6d732 100644 --- a/ghc/tests/typecheck/should_fail/tcfail029.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail029.stderr @@ -2,7 +2,5 @@  tcfail029.hs:6:      No instance for `Ord Foo' arising from use of `>' at tcfail029.hs:6 - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail030.hs b/ghc/tests/typecheck/should_fail/tcfail030.hs index 87f21b26e6..163c727518 100644 --- a/ghc/tests/typecheck/should_fail/tcfail030.hs +++ b/ghc/tests/typecheck/should_fail/tcfail030.hs @@ -1 +1,2 @@  -- !!! empty file + diff --git a/ghc/tests/typecheck/should_fail/tcfail030.stderr b/ghc/tests/typecheck/should_fail/tcfail030.stderr index 88a651b8e2..f49ad59747 100644 --- a/ghc/tests/typecheck/should_fail/tcfail030.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail030.stderr @@ -1,7 +1,5 @@ -tcfail030.hs:0: Module `Main' must include a definition for `main' - - +tcfail030.hs:0: Variable not in scope: `Main.main'  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail031.stderr b/ghc/tests/typecheck/should_fail/tcfail031.stderr index a8d9781dbc..c1795e5ac1 100644 --- a/ghc/tests/typecheck/should_fail/tcfail031.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail031.stderr @@ -6,7 +6,5 @@ tcfail031.hs:3:      In the predicate expression: 'a'      In the right-hand side of an equation for `f': if 'a' then 1 else 2 - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail032.stderr b/ghc/tests/typecheck/should_fail/tcfail032.stderr index d8287931ca..0586efe424 100644 --- a/ghc/tests/typecheck/should_fail/tcfail032.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail032.stderr @@ -5,13 +5,10 @@ tcfail032.hs:14:  	It is mentioned in the environment  	The following variables in the environment mention `a'  	    x :: a -> Int -    In an expression with expected type: forall a1. -					 {Eq a1} => -					 a1 -> Int +    In an expression with expected type: +	forall a1. (Eq a1) => a1 -> Int      In an expression with a type signature:  	  x :: forall a. (Eq a) => a -> Int - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail033.stderr b/ghc/tests/typecheck/should_fail/tcfail033.stderr index 3bc5fa549e..e4ed3e61b5 100644 --- a/ghc/tests/typecheck/should_fail/tcfail033.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail033.stderr @@ -5,7 +5,5 @@ tcfail033.hs:4:  	Inferred type: t      In a list-comprehension qualifier: return x - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail034.stderr b/ghc/tests/typecheck/should_fail/tcfail034.stderr index 42ed8bfae6..8915021621 100644 --- a/ghc/tests/typecheck/should_fail/tcfail034.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail034.stderr @@ -6,7 +6,5 @@ tcfail034.hs:17:      Probable cause: missing `Integral a' in type signature for `test'      When checking the type signature(s) for `test' - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail035.stderr b/ghc/tests/typecheck/should_fail/tcfail035.stderr index ed219a596b..0e090bdc23 100644 --- a/ghc/tests/typecheck/should_fail/tcfail035.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail035.stderr @@ -39,13 +39,9 @@ tcfail035.hs:7:      Warning: No explicit method nor default method for `+'  	     in an instance declaration for `Num' - -  tcfail035.hs:3:      Duplicate or overlapping instance declarations  	for `Num NUM' at tcfail035.hs:6 and tcfail035.hs:7 - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail036.stderr b/ghc/tests/typecheck/should_fail/tcfail036.stderr index 441b9ff665..91b23df6fb 100644 --- a/ghc/tests/typecheck/should_fail/tcfail036.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail036.stderr @@ -35,8 +35,6 @@ tcfail036.hs:8:      Warning: No explicit method nor default method for `+'  	     in an instance declaration for `Num' - -  tcfail036.hs:3:      Duplicate or overlapping instance declarations  	for `Num NUM' at tcfail036.hs:7 and tcfail036.hs:8 @@ -53,7 +51,5 @@ tcfail036.hs:9:      Class used as a type constructor: Num      When checking kinds in `Eq Num' - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail037.stderr b/ghc/tests/typecheck/should_fail/tcfail037.stderr index ab51ba6f74..d130a2e79d 100644 --- a/ghc/tests/typecheck/should_fail/tcfail037.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail037.stderr @@ -4,7 +4,5 @@ tcfail037.hs:7:      It could refer to either `+', defined at tcfail037.hs:10  		          or `Prelude.+', imported from Prelude at tcfail037.hs:3 - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail038.stderr b/ghc/tests/typecheck/should_fail/tcfail038.stderr index d1ca6fd546..b31ade5dca 100644 --- a/ghc/tests/typecheck/should_fail/tcfail038.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail038.stderr @@ -7,7 +7,5 @@ tcfail038.hs:8:      Conflicting definitions for `/='      in the bindings in an instance declaration - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail039.stderr b/ghc/tests/typecheck/should_fail/tcfail039.stderr index 35e23def64..97514c6932 100644 --- a/ghc/tests/typecheck/should_fail/tcfail039.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail039.stderr @@ -4,7 +4,5 @@ tcfail039.hs:11:      It could refer to either `==', defined at tcfail039.hs:7  		          or `Prelude.==', imported from Prelude at tcfail039.hs:3 - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail040.stderr b/ghc/tests/typecheck/should_fail/tcfail040.stderr index dfcdd4c693..eb774c9a99 100644 --- a/ghc/tests/typecheck/should_fail/tcfail040.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail040.stderr @@ -4,7 +4,5 @@ tcfail040.hs:19:  	in the constraint `ORD a'  	arising from use of `<<' at tcfail040.hs:19 - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail042.stderr b/ghc/tests/typecheck/should_fail/tcfail042.stderr index 7e746ccc36..da5c6b1e6b 100644 --- a/ghc/tests/typecheck/should_fail/tcfail042.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail042.stderr @@ -6,7 +6,5 @@ tcfail042.hs:18:      Probable cause: missing `Num a' in instance declaration context      When checking the superclasses of an instance declaration - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail043.hs b/ghc/tests/typecheck/should_fail/tcfail043.hs index cc1983be5b..184a4e23bf 100644 --- a/ghc/tests/typecheck/should_fail/tcfail043.hs +++ b/ghc/tests/typecheck/should_fail/tcfail043.hs @@ -12,6 +12,7 @@  --     class "Eq_", type "a" (at a use of an overloaded identifier: eq) +module TcFail where  class Eq_ a where   eq :: a -> a -> Bool @@ -25,7 +26,7 @@ instance (Eq_ a) => Eq_ [a] where          then (null ys)          else if (null ys)                   then False -                else and (eq (hd xs) (hd ys)) (eq (tl xs) (tl ys)) +                else (&&) (eq (hd xs) (hd ys)) (eq (tl xs) (tl ys))  class (Eq_ a) => Ord_ a where   gt :: a -> a -> Bool @@ -38,8 +39,6 @@ search                  then False                   else if eq a (hd bs) then True else search a (tl bs) -and :: Bool -> Bool -> Bool -and True True = True  hd :: [a] -> a  hd (a:as) = a @@ -53,8 +52,6 @@ ordIntGt 2 3 = True  eqIntEq :: Int -> Int -> Bool  eqIntEq  2 3 = True -null :: [a] -> Bool -null [] = True diff --git a/ghc/tests/typecheck/should_fail/tcfail043.stderr b/ghc/tests/typecheck/should_fail/tcfail043.stderr index ac63226a6a..1c54047853 100644 --- a/ghc/tests/typecheck/should_fail/tcfail043.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail043.stderr @@ -1,35 +1,8 @@ -tcfail043.hs:24: -    Ambiguous occurrence `null' -    It could refer to either `null', defined at tcfail043.hs:57 -		          or `Prelude.null', imported from Prelude at tcfail043.hs:16 - -tcfail043.hs:24: -    Ambiguous occurrence `null' -    It could refer to either `null', defined at tcfail043.hs:57 -		          or `Prelude.null', imported from Prelude at tcfail043.hs:16 - -tcfail043.hs:26: -    Ambiguous occurrence `null' -    It could refer to either `null', defined at tcfail043.hs:57 -		          or `Prelude.null', imported from Prelude at tcfail043.hs:16 - -tcfail043.hs:26: -    Ambiguous occurrence `and' -    It could refer to either `and', defined at tcfail043.hs:42 -		          or `Prelude.and', imported from Prelude at tcfail043.hs:16 - -tcfail043.hs:41: -    Ambiguous occurrence `and' -    It could refer to either `and', defined at tcfail043.hs:42 -		          or `Prelude.and', imported from Prelude at tcfail043.hs:16 - -tcfail043.hs:56: -    Ambiguous occurrence `null' -    It could refer to either `null', defined at tcfail043.hs:57 -		          or `Prelude.null', imported from Prelude at tcfail043.hs:16 - - +tcfail043.hs:38: +    Ambiguous type variable(s) `a' +	in the constraint `Ord_ a' +	arising from use of `gt' at tcfail043.hs:38  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail044.hs b/ghc/tests/typecheck/should_fail/tcfail044.hs index a013dd4f5a..b271d0f977 100644 --- a/ghc/tests/typecheck/should_fail/tcfail044.hs +++ b/ghc/tests/typecheck/should_fail/tcfail044.hs @@ -3,7 +3,7 @@  module ShouldFail where  instance (Eq a) => Eq (a->a) -  +instance Show (a->b)  instance (Num a) => Num (a->a) where      f + g    = \x -> f x + g x diff --git a/ghc/tests/typecheck/should_fail/tcfail044.stderr b/ghc/tests/typecheck/should_fail/tcfail044.stderr index f30e605f51..0fe6b349bd 100644 --- a/ghc/tests/typecheck/should_fail/tcfail044.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail044.stderr @@ -7,8 +7,6 @@ tcfail044.hs:12:      Warning: No explicit method nor default method for `abs'  	     in an instance declaration for `Num' - -  tcfail044.hs:5:      Illegal instance declaration for `Eq (a -> a)'  	(the instance type must be of form (T a b c) @@ -19,7 +17,5 @@ tcfail044.hs:12:  	(the instance type must be of form (T a b c)  	 where T is not a synonym, and a,b,c are distinct type variables) - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail045.stderr b/ghc/tests/typecheck/should_fail/tcfail045.stderr index 236911e895..10b23676e5 100644 --- a/ghc/tests/typecheck/should_fail/tcfail045.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail045.stderr @@ -3,7 +3,5 @@ tcfail045.hs:10:      Unacceptable instance type for ccall-ish class  	class CCallable type Socket - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail046.stderr b/ghc/tests/typecheck/should_fail/tcfail046.stderr index 2f5fe27f2a..9d5307d3bc 100644 --- a/ghc/tests/typecheck/should_fail/tcfail046.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail046.stderr @@ -3,7 +3,5 @@ tcfail046.hs:4:      No instance for `Eq (Process a)'      When deriving classes for `Message' - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail047.stderr b/ghc/tests/typecheck/should_fail/tcfail047.stderr index 4eb3cca94f..d9b4692171 100644 --- a/ghc/tests/typecheck/should_fail/tcfail047.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail047.stderr @@ -4,7 +4,5 @@ tcfail047.hs:7:  	(the instance type must be of form (T a b c)  	 where T is not a synonym, and a,b,c are distinct type variables) - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail048.stderr b/ghc/tests/typecheck/should_fail/tcfail048.stderr index 5b2692450a..11f833d06d 100644 --- a/ghc/tests/typecheck/should_fail/tcfail048.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail048.stderr @@ -1,7 +1,5 @@  tcfail048.hs:4: Type constructor or class not in scope: `B' - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail049.stderr b/ghc/tests/typecheck/should_fail/tcfail049.stderr index e2e5992eae..1c7f82a4f7 100644 --- a/ghc/tests/typecheck/should_fail/tcfail049.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail049.stderr @@ -1,7 +1,5 @@  tcfail049.hs:3: Variable not in scope: `g' - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail050.stderr b/ghc/tests/typecheck/should_fail/tcfail050.stderr index f21fbf494f..6f4c224fcd 100644 --- a/ghc/tests/typecheck/should_fail/tcfail050.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail050.stderr @@ -1,7 +1,5 @@  tcfail050.hs:3: Data constructor not in scope: `B' - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail051.stderr b/ghc/tests/typecheck/should_fail/tcfail051.stderr index ead1fa1326..668c158ec2 100644 --- a/ghc/tests/typecheck/should_fail/tcfail051.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail051.stderr @@ -3,7 +3,5 @@ tcfail051.hs:4: Type constructor or class not in scope: `B'  tcfail051.hs:4: Variable not in scope: `op1' - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail052.stderr b/ghc/tests/typecheck/should_fail/tcfail052.stderr index 397abcd8cb..cf01d153c9 100644 --- a/ghc/tests/typecheck/should_fail/tcfail052.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail052.stderr @@ -1,7 +1,5 @@  tcfail052.hs:4: Type variable not in scope: `c' - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail053.hs b/ghc/tests/typecheck/should_fail/tcfail053.hs index 99028ab4c8..d13e606434 100644 --- a/ghc/tests/typecheck/should_fail/tcfail053.hs +++ b/ghc/tests/typecheck/should_fail/tcfail053.hs @@ -1,2 +1,3 @@ +module TcFail where  data B = C A diff --git a/ghc/tests/typecheck/should_fail/tcfail053.stderr b/ghc/tests/typecheck/should_fail/tcfail053.stderr index baa28f5ef0..327beefd31 100644 --- a/ghc/tests/typecheck/should_fail/tcfail053.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail053.stderr @@ -1,7 +1,5 @@ -tcfail053.hs:3: Type constructor or class not in scope: `A' - - +tcfail053.hs:4: Type constructor or class not in scope: `A'  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail054.stderr b/ghc/tests/typecheck/should_fail/tcfail054.stderr index 65477564f7..277623ef3a 100644 --- a/ghc/tests/typecheck/should_fail/tcfail054.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail054.stderr @@ -1,7 +1,5 @@  tcfail054.hs:3: Data constructor not in scope: `B' - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail055.stderr b/ghc/tests/typecheck/should_fail/tcfail055.stderr index 834f6567e4..0c18a152dd 100644 --- a/ghc/tests/typecheck/should_fail/tcfail055.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail055.stderr @@ -5,7 +5,5 @@ tcfail055.hs:3:  	Inferred type: Float      In an expression with a type signature: x + 1 :: Int - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail056.stderr b/ghc/tests/typecheck/should_fail/tcfail056.stderr index 1ac293662c..457aed54da 100644 --- a/ghc/tests/typecheck/should_fail/tcfail056.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail056.stderr @@ -5,7 +5,5 @@ tcfail056.hs:1:  tcfail056.hs:10: Class `Eq' does not have a method `<=' - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail057.stderr b/ghc/tests/typecheck/should_fail/tcfail057.stderr index 15966fae70..163df53016 100644 --- a/ghc/tests/typecheck/should_fail/tcfail057.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail057.stderr @@ -3,7 +3,5 @@ tcfail057.hs:5:      Class used as a type constructor: RealFrac      When checking kinds in `RealFrac a' - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail058.stderr b/ghc/tests/typecheck/should_fail/tcfail058.stderr index bab93a7cdc..69e4de1cad 100644 --- a/ghc/tests/typecheck/should_fail/tcfail058.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail058.stderr @@ -3,7 +3,5 @@ tcfail058.hs:6:      Type constructor used as a class: Array      When checking kinds in `Array a' - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail061.stderr b/ghc/tests/typecheck/should_fail/tcfail061.stderr index 362e7a5e88..faa0dca8bd 100644 --- a/ghc/tests/typecheck/should_fail/tcfail061.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail061.stderr @@ -7,7 +7,5 @@ tcfail061.hs:11: Type variable not in scope: `b'  tcfail061.hs:11: Type variable not in scope: `b' - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail062.stderr b/ghc/tests/typecheck/should_fail/tcfail062.stderr index 2887b6bbe2..f0d6c1c10d 100644 --- a/ghc/tests/typecheck/should_fail/tcfail062.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail062.stderr @@ -5,7 +5,5 @@ tcfail062.hs:33:  tcfail062.hs:33:      Type variable not in scope: `behaviouralExpression' - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail065.stderr b/ghc/tests/typecheck/should_fail/tcfail065.stderr index 191e08ed5f..2b7b343ced 100644 --- a/ghc/tests/typecheck/should_fail/tcfail065.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail065.stderr @@ -2,13 +2,13 @@  tcfail065.hs:29:      Inferred type is less polymorphic than expected  	Quantified type variable `x' escapes -	It is mentioned in the environment -	The following variables in the environment mention `x' +	It unifies with `x1', which is mentioned in the environment +** SLPJ: I HATE THE 'unifies with' PART ** +	The following variables in the environment mention `x1' +** AND NOTHING MENTIONED! **      When checking the type signature  	setX :: forall x2. x2 -> X x1 -> X x1      In the definition for method `setX' - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail067.stderr b/ghc/tests/typecheck/should_fail/tcfail067.stderr index fca214ae22..8cfe0b1d58 100644 --- a/ghc/tests/typecheck/should_fail/tcfail067.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail067.stderr @@ -7,19 +7,22 @@ tcfail067.hs:65:      Warning: No explicit method nor default method for `abs'  	     in an instance declaration for `Num' - -  tcfail067.hs:65:      Could not deduce `Ord a'  	(arising from use of `SubRange' at tcfail067.hs:65) -	from the context: (Num (SubRange a1), Num a1, Eq (SubRange a1), Show (SubRange a1), Eq (SubRange a1), Show (SubRange a1)) +	from the context: (Num (SubRange a), +			   Num a, +			   Eq (SubRange a), +			   Show (SubRange a), +			   Eq (SubRange a), +			   Show (SubRange a))      Probable cause: missing `Ord a' in instance declaration context      When checking the methods of an instance declaration  tcfail067.hs:65:      Could not deduce `Show (SubRange a)'  	(arising from an instance declaration at tcfail067.hs:65) -	from the context: (Num a1) +	from the context: (Num a)      Probable cause: missing `Show (SubRange a)'  		    in instance declaration context  		    or missing instance declaration for `Show (SubRange a)' @@ -33,7 +36,5 @@ tcfail067.hs:74:  		    in type signature for `numSubRangeBinOp'      When checking the type signature(s) for `numSubRangeBinOp' - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail068.stderr b/ghc/tests/typecheck/should_fail/tcfail068.stderr index 4fea13ff31..ccd2fab361 100644 --- a/ghc/tests/typecheck/should_fail/tcfail068.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail068.stderr @@ -49,7 +49,5 @@ tcfail068.hs:36:      In the right-hand side of an equation for `itrapstate':  	runST (itrapstate' i k s) - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail069.stderr b/ghc/tests/typecheck/should_fail/tcfail069.stderr index 3ca0c5f829..a3c950dceb 100644 --- a/ghc/tests/typecheck/should_fail/tcfail069.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail069.stderr @@ -6,7 +6,5 @@ tcfail069.hs:20:      In the scrutinee of a case expression: (list1, list2)      In the case expression: case (list1, list2) of [] -> error "foo" - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail070.hs b/ghc/tests/typecheck/should_fail/tcfail070.hs index d6cd3d7eab..6cd2a28404 100644 --- a/ghc/tests/typecheck/should_fail/tcfail070.hs +++ b/ghc/tests/typecheck/should_fail/tcfail070.hs @@ -10,5 +10,7 @@ panic! (the `impossible' happened):  	tlist  -} +module TcFail where +  type State = ([Int] Bool) diff --git a/ghc/tests/typecheck/should_fail/tcfail070.stderr b/ghc/tests/typecheck/should_fail/tcfail070.stderr index e0736b83fd..6a5d4afc45 100644 --- a/ghc/tests/typecheck/should_fail/tcfail070.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail070.stderr @@ -1,12 +1,10 @@ -tcfail070.hs:13: +tcfail070.hs:15:      Couldn't match `*' against `* -> k'  	Expected kind: *  	Inferred kind: * -> k      When checking kinds in `[Int] Bool'      In the type synonym declaration for `State' - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail071.stderr b/ghc/tests/typecheck/should_fail/tcfail071.stderr index 018379f825..3f711e9c49 100644 --- a/ghc/tests/typecheck/should_fail/tcfail071.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail071.stderr @@ -1,10 +1,16 @@  tcfail071.hs:8: -    Inferred type is less polymorphic than expected -	Quantified type variable `c' is unified with `a -> [t] -> [t]' -    When checking the type signature g :: forall c1. c1 -> c1 - +    Mismatched contexts +    When matching the contexts of the signatures for `f' and `g' +	(the signature contexts in a mutually recursive group should all be identical) +tcfail071.hs:10: +    Cannot unify the type-signature variable `c' +	with the type `a -> b -> b' +	Expected type: a -> b -> b +	Inferred type: c +    In the first argument of `f', namely `c' +    In the first argument of `foldr', namely `(f c)'  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail072.stderr b/ghc/tests/typecheck/should_fail/tcfail072.stderr index ea214e1c49..a54ff9863e 100644 --- a/ghc/tests/typecheck/should_fail/tcfail072.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail072.stderr @@ -9,7 +9,5 @@ tcfail072.hs:23:  	in the constraint `Ord q'  	arising from use of `g' at tcfail072.hs:23 - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail073.stderr b/ghc/tests/typecheck/should_fail/tcfail073.stderr index a51978510e..90c9b23df2 100644 --- a/ghc/tests/typecheck/should_fail/tcfail073.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail073.stderr @@ -1,7 +1,7 @@  tcfail073.hs:3:      Duplicate or overlapping instance declarations -	for `Eq (a, b)' at PrelTup.hi:10 and tcfail073.hs:8 +	for `Eq (a, b)' at PrelTup.hi:5 and tcfail073.hs:8  tcfail073.hs:8:      Could not deduce `Eq a' @@ -10,7 +10,5 @@ tcfail073.hs:8:      Probable cause: missing `Eq a' in instance declaration context      When checking the methods of an instance declaration - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail074.stderr b/ghc/tests/typecheck/should_fail/tcfail074.stderr index 9e85e923b6..710193777e 100644 --- a/ghc/tests/typecheck/should_fail/tcfail074.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail074.stderr @@ -4,7 +4,5 @@ tcfail074.hs:7:  	defined at tcfail074.hs:7  	defined at tcfail074.hs:8 - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail076.stderr b/ghc/tests/typecheck/should_fail/tcfail076.stderr index c715384aaf..fa1ea953d9 100644 --- a/ghc/tests/typecheck/should_fail/tcfail076.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail076.stderr @@ -2,16 +2,14 @@  tcfail076.hs:18:      Inferred type is less polymorphic than expected  	Quantified type variable `res' escapes -	It unifies with `res1', which is mentioned in the environment -	The following variables in the environment mention `res1' -	    cont :: a -> m res1 -    In an expression with expected type: forall res2. -					 (a1 -> m res2) -> m res2 +	It is mentioned in the environment +	The following variables in the environment mention `res' +	    cont :: a -> m res +    In an expression with expected type: +	forall res1. (a1 -> m1 res1) -> m1 res1      In the first argument of `KContT', namely `(\ cont' -> cont a)'      In the right-hand side of a lambda abstraction:  	KContT (\ cont' -> cont a) - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail077.stderr b/ghc/tests/typecheck/should_fail/tcfail077.stderr index 376d1bfe13..9626bb4378 100644 --- a/ghc/tests/typecheck/should_fail/tcfail077.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail077.stderr @@ -1,7 +1,5 @@  tcfail077.hs:8: Variable not in scope: `op2' - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail078.stderr b/ghc/tests/typecheck/should_fail/tcfail078.stderr index ffae1f07c3..8002caa38a 100644 --- a/ghc/tests/typecheck/should_fail/tcfail078.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail078.stderr @@ -3,7 +3,5 @@ tcfail078.hs:5:      Type constructor used as a class: Integer      When checking kinds in `Integer i' - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail079.stderr b/ghc/tests/typecheck/should_fail/tcfail079.stderr index bf3afb4636..7765b82a73 100644 --- a/ghc/tests/typecheck/should_fail/tcfail079.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail079.stderr @@ -6,7 +6,5 @@ tcfail079.hs:9:      When checking that `Int#' is a type      In the data type declaration for `Unboxed' - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail080.stderr b/ghc/tests/typecheck/should_fail/tcfail080.stderr index e4d8be9798..dd2eaf2d0c 100644 --- a/ghc/tests/typecheck/should_fail/tcfail080.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail080.stderr @@ -4,7 +4,5 @@ tcfail080.hs:11:  	in the constraint `Collection c a'  	arising from use of `isempty' at tcfail080.hs:11 - -  Compilation had errors diff --git a/ghc/tests/typecheck/should_fail/tcfail081.stderr b/ghc/tests/typecheck/should_fail/tcfail081.stderr index c0bbc90c8e..f66b5ecae8 100644 --- a/ghc/tests/typecheck/should_fail/tcfail081.stderr +++ b/ghc/tests/typecheck/should_fail/tcfail081.stderr @@ -1,10 +1,9 @@ -tcfail081.hs:4: -    Inferred type is less polymorphic than expected -	Quantified type variable `a' is unified with `IO t' -    When checking the type signature main :: forall a1. a1 - - +tcfail081.hs:2: +    Cannot unify the type-signature variable `a' with the type `IO t' +	Expected type: IO t +	Inferred type: a +    When checking that `main' has the required type  Compilation had errors  | 
