diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2015-08-05 14:24:54 +0100 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2015-08-05 16:50:41 +0100 |
commit | 953648127cea2836ec134b03a966695ac0b36434 (patch) | |
tree | 6b5721dc6f0133b54af97c60f396e9207ef223ae /testsuite/tests | |
parent | ab98860871cfac17417d5b55e590445064d21111 (diff) | |
download | haskell-953648127cea2836ec134b03a966695ac0b36434.tar.gz |
Tidy up and refactor wildcard handling
When examining #10615, I found the wildcard handling hard
to understand. This patch refactors quite a bit, but with
no real change in behaviour.
* Split out TcIdSigInfo from TcSigInfo, as a separate type,
like TcPatSynInfo.
* Make TcIdSigInfo express more invariants by pushing the
wildard info into TcIdSigBndr
* Remove all special treatment of unification variables that arise
from wildcards; so the TauTv of TcType.MetaInfo loses its Bool
argument.
A ton of konck on changes. The result is significantly simpler, I think.
Diffstat (limited to 'testsuite/tests')
26 files changed, 943 insertions, 904 deletions
diff --git a/testsuite/tests/ghci/scripts/Defer02.stderr b/testsuite/tests/ghci/scripts/Defer02.stderr index 4a92236b38..cc5ae21d20 100644 --- a/testsuite/tests/ghci/scripts/Defer02.stderr +++ b/testsuite/tests/ghci/scripts/Defer02.stderr @@ -1,189 +1,193 @@ - -../../typecheck/should_run/Defer01.hs:11:40: warning: - Couldn't match type ‘Char’ with ‘[Char]’ - Expected type: String - Actual type: Char - In the first argument of ‘putStr’, namely ‘','’ - In the second argument of ‘(>>)’, namely ‘putStr ','’ - In the expression: putStr "Hello World" >> putStr ',' - -../../typecheck/should_run/Defer01.hs:14:5: warning: - Couldn't match expected type ‘Int’ with actual type ‘Char’ - In the expression: 'p' - In an equation for ‘a’: a = 'p' - -../../typecheck/should_run/Defer01.hs:18:9: warning: - No instance for (Eq B) arising from a use of ‘==’ - In the expression: x == x - In an equation for ‘b’: b x = x == x - -../../typecheck/should_run/Defer01.hs:25:4: warning: - Couldn't match type ‘Int’ with ‘Bool’ - Inaccessible code in - a pattern with constructor: C2 :: Bool -> C Bool, - in an equation for ‘c’ - In the pattern: C2 x - In an equation for ‘c’: c (C2 x) = True - -../../typecheck/should_run/Defer01.hs:28:5: warning: - No instance for (Num (a -> a)) arising from the literal ‘1’ - (maybe you haven't applied a function to enough arguments?) - In the expression: 1 - In an equation for ‘d’: d = 1 - -../../typecheck/should_run/Defer01.hs:31:5: warning: - Couldn't match expected type ‘Char -> t’ with actual type ‘Char’ - Relevant bindings include - f :: t (bound at ../../typecheck/should_run/Defer01.hs:31:1) - The function ‘e’ is applied to one argument, - but its type ‘Char’ has none - In the expression: e 'q' - In an equation for ‘f’: f = e 'q' - -../../typecheck/should_run/Defer01.hs:34:8: warning: - Couldn't match expected type ‘Char’ with actual type ‘a’ - ‘a’ is a rigid type variable bound by - the type signature for: h :: a -> (Char, Char) - at ../../typecheck/should_run/Defer01.hs:33:6 - Relevant bindings include - x :: a (bound at ../../typecheck/should_run/Defer01.hs:34:3) - h :: a -> (Char, Char) - (bound at ../../typecheck/should_run/Defer01.hs:34:1) - In the expression: x - In the expression: (x, 'c') - -../../typecheck/should_run/Defer01.hs:39:17: warning: - Couldn't match expected type ‘Bool’ with actual type ‘T a’ - Relevant bindings include - a :: a (bound at ../../typecheck/should_run/Defer01.hs:39:3) - i :: a -> () (bound at ../../typecheck/should_run/Defer01.hs:39:1) - In the first argument of ‘not’, namely ‘(K a)’ - In the expression: (not (K a)) - -../../typecheck/should_run/Defer01.hs:43:5: warning: - No instance for (MyClass a1) arising from a use of ‘myOp’ - In the expression: myOp 23 - In an equation for ‘j’: j = myOp 23 - -../../typecheck/should_run/Defer01.hs:43:10: warning: - No instance for (Num a1) arising from the literal ‘23’ - The type variable ‘a1’ is ambiguous - Note: there are several potential instances: - instance Num Integer -- Defined in ‘GHC.Num’ - instance Num Double -- Defined in ‘GHC.Float’ - instance Num Float -- Defined in ‘GHC.Float’ - ...plus two others - In the first argument of ‘myOp’, namely ‘23’ - In the expression: myOp 23 - In an equation for ‘j’: j = myOp 23 - -../../typecheck/should_run/Defer01.hs:45:6: warning: - Couldn't match type ‘Int’ with ‘Bool’ - Inaccessible code in - the type signature for: k :: (Int ~ Bool) => Int -> Bool - In the ambiguity check for the type signature for ‘k’: - k :: (Int ~ Bool) => Int -> Bool - To defer the ambiguity check to use sites, enable AllowAmbiguousTypes - In the type signature for ‘k’: k :: (Int ~ Bool) => Int -> Bool - -../../typecheck/should_run/Defer01.hs:45:6: warning: - Couldn't match expected type ‘Bool’ with actual type ‘Int’ - In the ambiguity check for the type signature for ‘k’: - k :: (Int ~ Bool) => Int -> Bool - To defer the ambiguity check to use sites, enable AllowAmbiguousTypes - In the type signature for ‘k’: k :: (Int ~ Bool) => Int -> Bool - -../../typecheck/should_run/Defer01.hs:45:6: warning: - Couldn't match type ‘Int’ with ‘Bool’ - Inaccessible code in - the type signature for: k :: (Int ~ Bool) => Int -> Bool - -../../typecheck/should_run/Defer01.hs:46:7: warning: - Couldn't match expected type ‘Bool’ with actual type ‘Int’ - In the expression: x - In an equation for ‘k’: k x = x - -../../typecheck/should_run/Defer01.hs:49:5: warning: - Couldn't match expected type ‘IO a0’ - with actual type ‘Char -> IO ()’ - Probable cause: ‘putChar’ is applied to too few arguments - In the first argument of ‘(>>)’, namely ‘putChar’ - In the expression: putChar >> putChar 'p' -*** Exception: ../../typecheck/should_run/Defer01.hs:11:40: error: - Couldn't match type ‘Char’ with ‘[Char]’ - Expected type: String - Actual type: Char - In the first argument of ‘putStr’, namely ‘','’ - In the second argument of ‘(>>)’, namely ‘putStr ','’ - In the expression: putStr "Hello World" >> putStr ',' -(deferred type error) -*** Exception: ../../typecheck/should_run/Defer01.hs:14:5: error: - Couldn't match expected type ‘Int’ with actual type ‘Char’ - In the expression: 'p' - In an equation for ‘a’: a = 'p' -(deferred type error) -*** Exception: ../../typecheck/should_run/Defer01.hs:18:9: error: - No instance for (Eq B) arising from a use of ‘==’ - In the expression: x == x - In an equation for ‘b’: b x = x == x -(deferred type error) - -<interactive>:7:11: error: - Couldn't match type ‘Bool’ with ‘Int’ - Expected type: C Int - Actual type: C Bool - In the first argument of ‘c’, namely ‘(C2 True)’ - In the first argument of ‘print’, namely ‘(c (C2 True))’ -*** Exception: ../../typecheck/should_run/Defer01.hs:28:5: error: - No instance for (Num (a -> a)) arising from the literal ‘1’ - (maybe you haven't applied a function to enough arguments?) - In the expression: 1 - In an equation for ‘d’: d = 1 -(deferred type error) -*** Exception: ../../typecheck/should_run/Defer01.hs:31:5: error: - Couldn't match expected type ‘Char -> t’ with actual type ‘Char’ - Relevant bindings include - f :: t (bound at ../../typecheck/should_run/Defer01.hs:31:1) - The function ‘e’ is applied to one argument, - but its type ‘Char’ has none - In the expression: e 'q' - In an equation for ‘f’: f = e 'q' -(deferred type error) -*** Exception: ../../typecheck/should_run/Defer01.hs:34:8: error: - Couldn't match expected type ‘Char’ with actual type ‘a’ - ‘a’ is a rigid type variable bound by - the type signature for: h :: a -> (Char, Char) - at ../../typecheck/should_run/Defer01.hs:33:6 - Relevant bindings include - x :: a (bound at ../../typecheck/should_run/Defer01.hs:34:3) - h :: a -> (Char, Char) - (bound at ../../typecheck/should_run/Defer01.hs:34:1) - In the expression: x - In the expression: (x, 'c') -(deferred type error) -*** Exception: ../../typecheck/should_run/Defer01.hs:39:17: error: - Couldn't match expected type ‘Bool’ with actual type ‘T a’ - Relevant bindings include - a :: a (bound at ../../typecheck/should_run/Defer01.hs:39:3) - i :: a -> () (bound at ../../typecheck/should_run/Defer01.hs:39:1) - In the first argument of ‘not’, namely ‘(K a)’ - In the expression: (not (K a)) -(deferred type error) -*** Exception: ../../typecheck/should_run/Defer01.hs:43:5: error: - No instance for (MyClass a1) arising from a use of ‘myOp’ - In the expression: myOp 23 - In an equation for ‘j’: j = myOp 23 -(deferred type error) - -<interactive>:13:8: error: - Couldn't match expected type ‘Bool’ with actual type ‘Int’ - In the first argument of ‘print’, namely ‘(k 2)’ - In the expression: print (k 2) - In an equation for ‘it’: it = print (k 2) -*** Exception: ../../typecheck/should_run/Defer01.hs:49:5: error: - Couldn't match expected type ‘IO a0’ - with actual type ‘Char -> IO ()’ - Probable cause: ‘putChar’ is applied to too few arguments - In the first argument of ‘(>>)’, namely ‘putChar’ - In the expression: putChar >> putChar 'p' -(deferred type error) +
+..\..\typecheck\should_run\Defer01.hs:11:40: warning:
+ Couldn't match type ‘Char’ with ‘[Char]’
+ Expected type: String
+ Actual type: Char
+ In the first argument of ‘putStr’, namely ‘','’
+ In the second argument of ‘(>>)’, namely ‘putStr ','’
+ In the expression: putStr "Hello World" >> putStr ','
+
+..\..\typecheck\should_run\Defer01.hs:14:5: warning:
+ Couldn't match expected type ‘Int’ with actual type ‘Char’
+ In the expression: 'p'
+ In an equation for ‘a’: a = 'p'
+
+..\..\typecheck\should_run\Defer01.hs:18:9: warning:
+ No instance for (Eq B) arising from a use of ‘==’
+ In the expression: x == x
+ In an equation for ‘b’: b x = x == x
+
+..\..\typecheck\should_run\Defer01.hs:25:4: warning:
+ Couldn't match type ‘Int’ with ‘Bool’
+ Inaccessible code in
+ a pattern with constructor: C2 :: Bool -> C Bool,
+ in an equation for ‘c’
+ In the pattern: C2 x
+ In an equation for ‘c’: c (C2 x) = True
+
+..\..\typecheck\should_run\Defer01.hs:28:5: warning:
+ No instance for (Num (a -> a)) arising from the literal ‘1’
+ (maybe you haven't applied a function to enough arguments?)
+ In the expression: 1
+ In an equation for ‘d’: d = 1
+
+..\..\typecheck\should_run\Defer01.hs:31:5: warning:
+ Couldn't match expected type ‘Char -> t’ with actual type ‘Char’
+ Relevant bindings include
+ f :: t (bound at ..\..\typecheck\should_run\Defer01.hs:31:1)
+ The function ‘e’ is applied to one argument,
+ but its type ‘Char’ has none
+ In the expression: e 'q'
+ In an equation for ‘f’: f = e 'q'
+
+..\..\typecheck\should_run\Defer01.hs:34:8: warning:
+ Couldn't match expected type ‘Char’ with actual type ‘a’
+ ‘a’ is a rigid type variable bound by
+ the type signature for:
+ h :: a -> (Char, Char)
+ at ..\..\typecheck\should_run\Defer01.hs:33:6
+ Relevant bindings include
+ x :: a (bound at ..\..\typecheck\should_run\Defer01.hs:34:3)
+ h :: a -> (Char, Char)
+ (bound at ..\..\typecheck\should_run\Defer01.hs:34:1)
+ In the expression: x
+ In the expression: (x, 'c')
+
+..\..\typecheck\should_run\Defer01.hs:39:17: warning:
+ Couldn't match expected type ‘Bool’ with actual type ‘T a’
+ Relevant bindings include
+ a :: a (bound at ..\..\typecheck\should_run\Defer01.hs:39:3)
+ i :: a -> () (bound at ..\..\typecheck\should_run\Defer01.hs:39:1)
+ In the first argument of ‘not’, namely ‘(K a)’
+ In the expression: (not (K a))
+
+..\..\typecheck\should_run\Defer01.hs:43:5: warning:
+ No instance for (MyClass a1) arising from a use of ‘myOp’
+ In the expression: myOp 23
+ In an equation for ‘j’: j = myOp 23
+
+..\..\typecheck\should_run\Defer01.hs:43:10: warning:
+ No instance for (Num a1) arising from the literal ‘23’
+ The type variable ‘a1’ is ambiguous
+ Note: there are several potential instances:
+ instance Num Integer -- Defined in ‘GHC.Num’
+ instance Num Double -- Defined in ‘GHC.Float’
+ instance Num Float -- Defined in ‘GHC.Float’
+ ...plus two others
+ In the first argument of ‘myOp’, namely ‘23’
+ In the expression: myOp 23
+ In an equation for ‘j’: j = myOp 23
+
+..\..\typecheck\should_run\Defer01.hs:45:6: warning:
+ Couldn't match type ‘Int’ with ‘Bool’
+ Inaccessible code in
+ the type signature for:
+ k :: (Int ~ Bool) => Int -> Bool
+ In the ambiguity check for the type signature for ‘k’:
+ k :: (Int ~ Bool) => Int -> Bool
+ To defer the ambiguity check to use sites, enable AllowAmbiguousTypes
+ In the type signature for ‘k’: k :: (Int ~ Bool) => Int -> Bool
+
+..\..\typecheck\should_run\Defer01.hs:45:6: warning:
+ Couldn't match expected type ‘Bool’ with actual type ‘Int’
+ In the ambiguity check for the type signature for ‘k’:
+ k :: (Int ~ Bool) => Int -> Bool
+ To defer the ambiguity check to use sites, enable AllowAmbiguousTypes
+ In the type signature for ‘k’: k :: (Int ~ Bool) => Int -> Bool
+
+..\..\typecheck\should_run\Defer01.hs:45:6: warning:
+ Couldn't match type ‘Int’ with ‘Bool’
+ Inaccessible code in
+ the type signature for:
+ k :: (Int ~ Bool) => Int -> Bool
+
+..\..\typecheck\should_run\Defer01.hs:46:7: warning:
+ Couldn't match expected type ‘Bool’ with actual type ‘Int’
+ In the expression: x
+ In an equation for ‘k’: k x = x
+
+..\..\typecheck\should_run\Defer01.hs:49:5: warning:
+ Couldn't match expected type ‘IO a0’
+ with actual type ‘Char -> IO ()’
+ Probable cause: ‘putChar’ is applied to too few arguments
+ In the first argument of ‘(>>)’, namely ‘putChar’
+ In the expression: putChar >> putChar 'p'
+*** Exception: ..\..\typecheck\should_run\Defer01.hs:11:40: error:
+ Couldn't match type ‘Char’ with ‘[Char]’
+ Expected type: String
+ Actual type: Char
+ In the first argument of ‘putStr’, namely ‘','’
+ In the second argument of ‘(>>)’, namely ‘putStr ','’
+ In the expression: putStr "Hello World" >> putStr ','
+(deferred type error)
+*** Exception: ..\..\typecheck\should_run\Defer01.hs:14:5: error:
+ Couldn't match expected type ‘Int’ with actual type ‘Char’
+ In the expression: 'p'
+ In an equation for ‘a’: a = 'p'
+(deferred type error)
+*** Exception: ..\..\typecheck\should_run\Defer01.hs:18:9: error:
+ No instance for (Eq B) arising from a use of ‘==’
+ In the expression: x == x
+ In an equation for ‘b’: b x = x == x
+(deferred type error)
+
+<interactive>:7:11: error:
+ Couldn't match type ‘Bool’ with ‘Int’
+ Expected type: C Int
+ Actual type: C Bool
+ In the first argument of ‘c’, namely ‘(C2 True)’
+ In the first argument of ‘print’, namely ‘(c (C2 True))’
+*** Exception: ..\..\typecheck\should_run\Defer01.hs:28:5: error:
+ No instance for (Num (a -> a)) arising from the literal ‘1’
+ (maybe you haven't applied a function to enough arguments?)
+ In the expression: 1
+ In an equation for ‘d’: d = 1
+(deferred type error)
+*** Exception: ..\..\typecheck\should_run\Defer01.hs:31:5: error:
+ Couldn't match expected type ‘Char -> t’ with actual type ‘Char’
+ Relevant bindings include
+ f :: t (bound at ..\..\typecheck\should_run\Defer01.hs:31:1)
+ The function ‘e’ is applied to one argument,
+ but its type ‘Char’ has none
+ In the expression: e 'q'
+ In an equation for ‘f’: f = e 'q'
+(deferred type error)
+*** Exception: ..\..\typecheck\should_run\Defer01.hs:34:8: error:
+ Couldn't match expected type ‘Char’ with actual type ‘a’
+ ‘a’ is a rigid type variable bound by
+ the type signature for:
+ h :: a -> (Char, Char)
+ at ..\..\typecheck\should_run\Defer01.hs:33:6
+ Relevant bindings include
+ x :: a (bound at ..\..\typecheck\should_run\Defer01.hs:34:3)
+ h :: a -> (Char, Char)
+ (bound at ..\..\typecheck\should_run\Defer01.hs:34:1)
+ In the expression: x
+ In the expression: (x, 'c')
+(deferred type error)
+*** Exception: ..\..\typecheck\should_run\Defer01.hs:39:17: error:
+ Couldn't match expected type ‘Bool’ with actual type ‘T a’
+ Relevant bindings include
+ a :: a (bound at ..\..\typecheck\should_run\Defer01.hs:39:3)
+ i :: a -> () (bound at ..\..\typecheck\should_run\Defer01.hs:39:1)
+ In the first argument of ‘not’, namely ‘(K a)’
+ In the expression: (not (K a))
+(deferred type error)
+*** Exception: ..\..\typecheck\should_run\Defer01.hs:43:5: error:
+ No instance for (MyClass a1) arising from a use of ‘myOp’
+ In the expression: myOp 23
+ In an equation for ‘j’: j = myOp 23
+(deferred type error)
+
+<interactive>:13:8: error:
+ Couldn't match expected type ‘Bool’ with actual type ‘Int’
+ In the first argument of ‘print’, namely ‘(k 2)’
+ In the expression: print (k 2)
+ In an equation for ‘it’: it = print (k 2)
+*** Exception: ..\..\typecheck\should_run\Defer01.hs:49:5: error:
+ Couldn't match expected type ‘IO a0’
+ with actual type ‘Char -> IO ()’
+ Probable cause: ‘putChar’ is applied to too few arguments
+ In the first argument of ‘(>>)’, namely ‘putChar’
+ In the expression: putChar >> putChar 'p'
+(deferred type error)
diff --git a/testsuite/tests/partial-sigs/should_compile/Defaulting2MROff.stderr b/testsuite/tests/partial-sigs/should_compile/Defaulting2MROff.stderr index cf7cd3ed76..fe4fcaab1d 100644 --- a/testsuite/tests/partial-sigs/should_compile/Defaulting2MROff.stderr +++ b/testsuite/tests/partial-sigs/should_compile/Defaulting2MROff.stderr @@ -1,7 +1,7 @@ -TYPE SIGNATURES - bravo :: forall w_. Num w_ => w_ -TYPE CONSTRUCTORS -COERCION AXIOMS -Dependent modules: [] -Dependent packages: [base-4.8.2.0, ghc-prim-0.4.0.0, - integer-gmp-1.0.0.0] +TYPE SIGNATURES
+ bravo :: forall t. Num t => t
+TYPE CONSTRUCTORS
+COERCION AXIOMS
+Dependent modules: []
+Dependent packages: [base-4.8.2.0, ghc-prim-0.4.0.0,
+ integer-gmp-1.0.0.0]
diff --git a/testsuite/tests/partial-sigs/should_compile/Either.stderr b/testsuite/tests/partial-sigs/should_compile/Either.stderr index 59ff75cc76..23eb0275f1 100644 --- a/testsuite/tests/partial-sigs/should_compile/Either.stderr +++ b/testsuite/tests/partial-sigs/should_compile/Either.stderr @@ -1,7 +1,7 @@ -TYPE SIGNATURES - barry :: forall w_a. w_a -> (Either [Char] w_a, Either [Char] w_a) -TYPE CONSTRUCTORS -COERCION AXIOMS -Dependent modules: [] -Dependent packages: [base-4.8.2.0, ghc-prim-0.4.0.0, - integer-gmp-1.0.0.0] +TYPE SIGNATURES
+ barry :: forall t. t -> (Either [Char] t, Either [Char] t)
+TYPE CONSTRUCTORS
+COERCION AXIOMS
+Dependent modules: []
+Dependent packages: [base-4.8.2.0, ghc-prim-0.4.0.0,
+ integer-gmp-1.0.0.0]
diff --git a/testsuite/tests/partial-sigs/should_compile/EveryNamed.stderr b/testsuite/tests/partial-sigs/should_compile/EveryNamed.stderr index 0d3dd7befe..b42edf58ef 100644 --- a/testsuite/tests/partial-sigs/should_compile/EveryNamed.stderr +++ b/testsuite/tests/partial-sigs/should_compile/EveryNamed.stderr @@ -1,7 +1,7 @@ -TYPE SIGNATURES - every :: forall w_a. (w_a -> Bool) -> [w_a] -> Bool -TYPE CONSTRUCTORS -COERCION AXIOMS -Dependent modules: [] -Dependent packages: [base-4.8.2.0, ghc-prim-0.4.0.0, - integer-gmp-1.0.0.0] +TYPE SIGNATURES
+ every :: forall t. (t -> Bool) -> [t] -> Bool
+TYPE CONSTRUCTORS
+COERCION AXIOMS
+Dependent modules: []
+Dependent packages: [base-4.8.2.0, ghc-prim-0.4.0.0,
+ integer-gmp-1.0.0.0]
diff --git a/testsuite/tests/partial-sigs/should_compile/ExtraConstraints3.stderr b/testsuite/tests/partial-sigs/should_compile/ExtraConstraints3.stderr index 0edc8157e7..8799acd45b 100644 --- a/testsuite/tests/partial-sigs/should_compile/ExtraConstraints3.stderr +++ b/testsuite/tests/partial-sigs/should_compile/ExtraConstraints3.stderr @@ -1,231 +1,231 @@ -TYPE SIGNATURES - !! :: forall a. [a] -> Int -> a - $ :: forall a b. (a -> b) -> a -> b - $! :: forall a b. (a -> b) -> a -> b - && :: Bool -> Bool -> Bool - * :: forall a. Num a => a -> a -> a - ** :: forall a. Floating a => a -> a -> a - + :: forall a. Num a => a -> a -> a - ++ :: forall a. [a] -> [a] -> [a] - - :: forall a. Num a => a -> a -> a - . :: forall b c a. (b -> c) -> (a -> b) -> a -> c - / :: forall a. Fractional a => a -> a -> a - /= :: forall a. Eq a => a -> a -> Bool - < :: forall a. Ord a => a -> a -> Bool - <= :: forall a. Ord a => a -> a -> Bool - =<< :: - forall a (m :: * -> *) b. Monad m => (a -> m b) -> m a -> m b - == :: forall a. Eq a => a -> a -> Bool - > :: forall a. Ord a => a -> a -> Bool - >= :: forall a. Ord a => a -> a -> Bool - >> :: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b - >>= :: - forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b - ^ :: forall a b. (Integral b, Num a) => a -> b -> a - ^^ :: forall a b. (Fractional a, Integral b) => a -> b -> a - abs :: forall a. Num a => a -> a - acos :: forall a. Floating a => a -> a - acosh :: forall a. Floating a => a -> a - all :: - forall a (t :: * -> *). Foldable t => (a -> Bool) -> t a -> Bool - and :: forall (t :: * -> *). Foldable t => t Bool -> Bool - any :: - forall a (t :: * -> *). Foldable t => (a -> Bool) -> t a -> Bool - appendFile :: FilePath -> String -> IO () - asTypeOf :: forall a. a -> a -> a - asin :: forall a. Floating a => a -> a - asinh :: forall a. Floating a => a -> a - atan :: forall a. Floating a => a -> a - atan2 :: forall a. RealFloat a => a -> a -> a - atanh :: forall a. Floating a => a -> a - break :: forall a. (a -> Bool) -> [a] -> ([a], [a]) - ceiling :: forall a b. (Integral b, RealFrac a) => a -> b - compare :: forall a. Ord a => a -> a -> Ordering - concat :: forall (t :: * -> *) a. Foldable t => t [a] -> [a] - concatMap :: - forall a b (t :: * -> *). Foldable t => (a -> [b]) -> t a -> [b] - const :: forall a b. a -> b -> a - cos :: forall a. Floating a => a -> a - cosh :: forall a. Floating a => a -> a - curry :: forall a b c. ((a, b) -> c) -> a -> b -> c - cycle :: forall a. [a] -> [a] - decodeFloat :: forall a. RealFloat a => a -> (Integer, Int) - div :: forall a. Integral a => a -> a -> a - divMod :: forall a. Integral a => a -> a -> (a, a) - drop :: forall a. Int -> [a] -> [a] - dropWhile :: forall a. (a -> Bool) -> [a] -> [a] - either :: forall a c b. (a -> c) -> (b -> c) -> Either a b -> c - elem :: - forall (t :: * -> *) a. (Eq a, Foldable t) => a -> t a -> Bool - encodeFloat :: forall a. RealFloat a => Integer -> Int -> a - enumFrom :: forall a. Enum a => a -> [a] - enumFromThen :: forall a. Enum a => a -> a -> [a] - enumFromThenTo :: forall a. Enum a => a -> a -> a -> [a] - enumFromTo :: forall a. Enum a => a -> a -> [a] - error :: forall a. [Char] -> a - even :: forall a. Integral a => a -> Bool - exp :: forall a. Floating a => a -> a - exponent :: forall a. RealFloat a => a -> Int - fail :: forall (m :: * -> *) a. Monad m => String -> m a - filter :: forall a. (a -> Bool) -> [a] -> [a] - flip :: forall a b c. (a -> b -> c) -> b -> a -> c - floatDigits :: forall a. RealFloat a => a -> Int - floatRadix :: forall a. RealFloat a => a -> Integer - floatRange :: forall a. RealFloat a => a -> (Int, Int) - floor :: forall a b. (Integral b, RealFrac a) => a -> b - fmap :: - forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b - foldl :: - forall (t :: * -> *) b a. - Foldable t => - (b -> a -> b) -> b -> t a -> b - foldl1 :: - forall (t :: * -> *) a. Foldable t => (a -> a -> a) -> t a -> a - foldr :: - forall (t :: * -> *) a b. - Foldable t => - (a -> b -> b) -> b -> t a -> b - foldr1 :: - forall (t :: * -> *) a. Foldable t => (a -> a -> a) -> t a -> a - fromEnum :: forall a. Enum a => a -> Int - fromInteger :: forall a. Num a => Integer -> a - fromIntegral :: forall a b. (Integral a, Num b) => a -> b - fromRational :: forall a. Fractional a => Rational -> a - fst :: forall a b. (a, b) -> a - gcd :: forall a. Integral a => a -> a -> a - getChar :: IO Char - getContents :: IO String - getLine :: IO String - head :: forall a. [a] -> a - id :: forall a. a -> a - init :: forall a. [a] -> [a] - interact :: (String -> String) -> IO () - ioError :: forall a. IOError -> IO a - isDenormalized :: forall a. RealFloat a => a -> Bool - isIEEE :: forall a. RealFloat a => a -> Bool - isInfinite :: forall a. RealFloat a => a -> Bool - isNaN :: forall a. RealFloat a => a -> Bool - isNegativeZero :: forall a. RealFloat a => a -> Bool - iterate :: forall a. (a -> a) -> a -> [a] - last :: forall a. [a] -> a - lcm :: forall a. Integral a => a -> a -> a - length :: forall (t :: * -> *) a. Foldable t => t a -> Int - lex :: ReadS String - lines :: String -> [String] - log :: forall a. Floating a => a -> a - logBase :: forall a. Floating a => a -> a -> a - lookup :: forall a b. Eq a => a -> [(a, b)] -> Maybe b - map :: forall a b. (a -> b) -> [a] -> [b] - mapM :: - forall (t :: * -> *) a (m :: * -> *) b. - (Monad m, Traversable t) => - (a -> m b) -> t a -> m (t b) - mapM_ :: - forall a (m :: * -> *) b (t :: * -> *). - (Monad m, Foldable t) => - (a -> m b) -> t a -> m () - max :: forall a. Ord a => a -> a -> a - maxBound :: forall w_. Bounded w_ => w_ - maximum :: forall (t :: * -> *) a. (Ord a, Foldable t) => t a -> a - maybe :: forall b a. b -> (a -> b) -> Maybe a -> b - min :: forall a. Ord a => a -> a -> a - minBound :: forall w_. Bounded w_ => w_ - minimum :: forall (t :: * -> *) a. (Ord a, Foldable t) => t a -> a - mod :: forall a. Integral a => a -> a -> a - negate :: forall a. Num a => a -> a - not :: Bool -> Bool - notElem :: - forall a (t :: * -> *). (Eq a, Foldable t) => a -> t a -> Bool - null :: forall (t :: * -> *) a. Foldable t => t a -> Bool - odd :: forall a. Integral a => a -> Bool - or :: forall (t :: * -> *). Foldable t => t Bool -> Bool - otherwise :: Bool - pi :: forall w_. Floating w_ => w_ - pred :: forall a. Enum a => a -> a - print :: forall a. Show a => a -> IO () - product :: forall (t :: * -> *) a. (Num a, Foldable t) => t a -> a - properFraction :: - forall a b. (Integral b, RealFrac a) => a -> (b, a) - putChar :: Char -> IO () - putStr :: String -> IO () - putStrLn :: String -> IO () - quot :: forall a. Integral a => a -> a -> a - quotRem :: forall a. Integral a => a -> a -> (a, a) - read :: forall a. Read a => String -> a - readFile :: FilePath -> IO String - readIO :: forall a. Read a => String -> IO a - readList :: forall a. Read a => ReadS [a] - readLn :: forall a. Read a => IO a - readParen :: forall a. Bool -> ReadS a -> ReadS a - reads :: forall a. Read a => ReadS a - readsPrec :: forall a. Read a => Int -> ReadS a - realToFrac :: forall a b. (Fractional b, Real a) => a -> b - recip :: forall a. Fractional a => a -> a - rem :: forall a. Integral a => a -> a -> a - repeat :: forall a. a -> [a] - replicate :: forall a. Int -> a -> [a] - return :: forall (m :: * -> *) a. Monad m => a -> m a - reverse :: forall a. [a] -> [a] - round :: forall a b. (Integral b, RealFrac a) => a -> b - scaleFloat :: forall a. RealFloat a => Int -> a -> a - scanl :: forall b a. (b -> a -> b) -> b -> [a] -> [b] - scanl1 :: forall a. (a -> a -> a) -> [a] -> [a] - scanr :: forall a b. (a -> b -> b) -> b -> [a] -> [b] - scanr1 :: forall a. (a -> a -> a) -> [a] -> [a] - seq :: forall a b. a -> b -> b - sequence :: - forall (t :: * -> *) (m :: * -> *) a. - (Monad m, Traversable t) => - t (m a) -> m (t a) - sequence_ :: - forall (t :: * -> *) (m :: * -> *) a. - (Monad m, Foldable t) => - t (m a) -> m () - show :: forall a. Show a => a -> String - showChar :: Char -> ShowS - showList :: forall a. Show a => [a] -> ShowS - showParen :: Bool -> ShowS -> ShowS - showString :: String -> ShowS - shows :: forall a. Show a => a -> ShowS - showsPrec :: forall a. Show a => Int -> a -> ShowS - significand :: forall a. RealFloat a => a -> a - signum :: forall a. Num a => a -> a - sin :: forall a. Floating a => a -> a - sinh :: forall a. Floating a => a -> a - snd :: forall a b. (a, b) -> b - span :: forall a. (a -> Bool) -> [a] -> ([a], [a]) - splitAt :: forall a. Int -> [a] -> ([a], [a]) - sqrt :: forall a. Floating a => a -> a - subtract :: forall a. Num a => a -> a -> a - succ :: forall a. Enum a => a -> a - sum :: forall (t :: * -> *) a. (Num a, Foldable t) => t a -> a - tail :: forall a. [a] -> [a] - take :: forall a. Int -> [a] -> [a] - takeWhile :: forall a. (a -> Bool) -> [a] -> [a] - tan :: forall a. Floating a => a -> a - tanh :: forall a. Floating a => a -> a - toEnum :: forall a. Enum a => Int -> a - toInteger :: forall a. Integral a => a -> Integer - toRational :: forall a. Real a => a -> Rational - truncate :: forall a b. (Integral b, RealFrac a) => a -> b - uncurry :: forall a b c. (a -> b -> c) -> (a, b) -> c - undefined :: forall w_. w_ - unlines :: [String] -> String - until :: forall a. (a -> Bool) -> (a -> a) -> a -> a - unwords :: [String] -> String - unzip :: forall a b. [(a, b)] -> ([a], [b]) - unzip3 :: forall a b c. [(a, b, c)] -> ([a], [b], [c]) - userError :: String -> IOError - words :: String -> [String] - writeFile :: FilePath -> String -> IO () - zip :: forall a b. [a] -> [b] -> [(a, b)] - zip3 :: forall a b c. [a] -> [b] -> [c] -> [(a, b, c)] - zipWith :: forall a b c. (a -> b -> c) -> [a] -> [b] -> [c] - zipWith3 :: - forall a b c d. (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d] - || :: Bool -> Bool -> Bool -TYPE CONSTRUCTORS -COERCION AXIOMS -Dependent modules: [] -Dependent packages: [base-4.8.2.0, ghc-prim-0.4.0.0, - integer-gmp-1.0.0.0] +TYPE SIGNATURES
+ !! :: forall a. [a] -> Int -> a
+ $ :: forall a b. (a -> b) -> a -> b
+ $! :: forall a b. (a -> b) -> a -> b
+ && :: Bool -> Bool -> Bool
+ * :: forall a. Num a => a -> a -> a
+ ** :: forall a. Floating a => a -> a -> a
+ + :: forall a. Num a => a -> a -> a
+ ++ :: forall a. [a] -> [a] -> [a]
+ - :: forall a. Num a => a -> a -> a
+ . :: forall b c a. (b -> c) -> (a -> b) -> a -> c
+ / :: forall a. Fractional a => a -> a -> a
+ /= :: forall a. Eq a => a -> a -> Bool
+ < :: forall a. Ord a => a -> a -> Bool
+ <= :: forall a. Ord a => a -> a -> Bool
+ =<< ::
+ forall a (m :: * -> *) b. Monad m => (a -> m b) -> m a -> m b
+ == :: forall a. Eq a => a -> a -> Bool
+ > :: forall a. Ord a => a -> a -> Bool
+ >= :: forall a. Ord a => a -> a -> Bool
+ >> :: forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
+ >>= ::
+ forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
+ ^ :: forall a b. (Integral b, Num a) => a -> b -> a
+ ^^ :: forall a b. (Fractional a, Integral b) => a -> b -> a
+ abs :: forall a. Num a => a -> a
+ acos :: forall a. Floating a => a -> a
+ acosh :: forall a. Floating a => a -> a
+ all ::
+ forall a (t :: * -> *). Foldable t => (a -> Bool) -> t a -> Bool
+ and :: forall (t :: * -> *). Foldable t => t Bool -> Bool
+ any ::
+ forall a (t :: * -> *). Foldable t => (a -> Bool) -> t a -> Bool
+ appendFile :: FilePath -> String -> IO ()
+ asTypeOf :: forall a. a -> a -> a
+ asin :: forall a. Floating a => a -> a
+ asinh :: forall a. Floating a => a -> a
+ atan :: forall a. Floating a => a -> a
+ atan2 :: forall a. RealFloat a => a -> a -> a
+ atanh :: forall a. Floating a => a -> a
+ break :: forall a. (a -> Bool) -> [a] -> ([a], [a])
+ ceiling :: forall a b. (Integral b, RealFrac a) => a -> b
+ compare :: forall a. Ord a => a -> a -> Ordering
+ concat :: forall (t :: * -> *) a. Foldable t => t [a] -> [a]
+ concatMap ::
+ forall a b (t :: * -> *). Foldable t => (a -> [b]) -> t a -> [b]
+ const :: forall a b. a -> b -> a
+ cos :: forall a. Floating a => a -> a
+ cosh :: forall a. Floating a => a -> a
+ curry :: forall a b c. ((a, b) -> c) -> a -> b -> c
+ cycle :: forall a. [a] -> [a]
+ decodeFloat :: forall a. RealFloat a => a -> (Integer, Int)
+ div :: forall a. Integral a => a -> a -> a
+ divMod :: forall a. Integral a => a -> a -> (a, a)
+ drop :: forall a. Int -> [a] -> [a]
+ dropWhile :: forall a. (a -> Bool) -> [a] -> [a]
+ either :: forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
+ elem ::
+ forall (t :: * -> *) a. (Eq a, Foldable t) => a -> t a -> Bool
+ encodeFloat :: forall a. RealFloat a => Integer -> Int -> a
+ enumFrom :: forall a. Enum a => a -> [a]
+ enumFromThen :: forall a. Enum a => a -> a -> [a]
+ enumFromThenTo :: forall a. Enum a => a -> a -> a -> [a]
+ enumFromTo :: forall a. Enum a => a -> a -> [a]
+ error :: forall a. [Char] -> a
+ even :: forall a. Integral a => a -> Bool
+ exp :: forall a. Floating a => a -> a
+ exponent :: forall a. RealFloat a => a -> Int
+ fail :: forall (m :: * -> *) a. Monad m => String -> m a
+ filter :: forall a. (a -> Bool) -> [a] -> [a]
+ flip :: forall a b c. (a -> b -> c) -> b -> a -> c
+ floatDigits :: forall a. RealFloat a => a -> Int
+ floatRadix :: forall a. RealFloat a => a -> Integer
+ floatRange :: forall a. RealFloat a => a -> (Int, Int)
+ floor :: forall a b. (Integral b, RealFrac a) => a -> b
+ fmap ::
+ forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
+ foldl ::
+ forall (t :: * -> *) b a.
+ Foldable t =>
+ (b -> a -> b) -> b -> t a -> b
+ foldl1 ::
+ forall (t :: * -> *) a. Foldable t => (a -> a -> a) -> t a -> a
+ foldr ::
+ forall (t :: * -> *) a b.
+ Foldable t =>
+ (a -> b -> b) -> b -> t a -> b
+ foldr1 ::
+ forall (t :: * -> *) a. Foldable t => (a -> a -> a) -> t a -> a
+ fromEnum :: forall a. Enum a => a -> Int
+ fromInteger :: forall a. Num a => Integer -> a
+ fromIntegral :: forall a b. (Integral a, Num b) => a -> b
+ fromRational :: forall a. Fractional a => Rational -> a
+ fst :: forall a b. (a, b) -> a
+ gcd :: forall a. Integral a => a -> a -> a
+ getChar :: IO Char
+ getContents :: IO String
+ getLine :: IO String
+ head :: forall a. [a] -> a
+ id :: forall a. a -> a
+ init :: forall a. [a] -> [a]
+ interact :: (String -> String) -> IO ()
+ ioError :: forall a. IOError -> IO a
+ isDenormalized :: forall a. RealFloat a => a -> Bool
+ isIEEE :: forall a. RealFloat a => a -> Bool
+ isInfinite :: forall a. RealFloat a => a -> Bool
+ isNaN :: forall a. RealFloat a => a -> Bool
+ isNegativeZero :: forall a. RealFloat a => a -> Bool
+ iterate :: forall a. (a -> a) -> a -> [a]
+ last :: forall a. [a] -> a
+ lcm :: forall a. Integral a => a -> a -> a
+ length :: forall (t :: * -> *) a. Foldable t => t a -> Int
+ lex :: ReadS String
+ lines :: String -> [String]
+ log :: forall a. Floating a => a -> a
+ logBase :: forall a. Floating a => a -> a -> a
+ lookup :: forall a b. Eq a => a -> [(a, b)] -> Maybe b
+ map :: forall a b. (a -> b) -> [a] -> [b]
+ mapM ::
+ forall (t :: * -> *) a (m :: * -> *) b.
+ (Monad m, Traversable t) =>
+ (a -> m b) -> t a -> m (t b)
+ mapM_ ::
+ forall a (m :: * -> *) b (t :: * -> *).
+ (Monad m, Foldable t) =>
+ (a -> m b) -> t a -> m ()
+ max :: forall a. Ord a => a -> a -> a
+ maxBound :: forall t. Bounded t => t
+ maximum :: forall (t :: * -> *) a. (Ord a, Foldable t) => t a -> a
+ maybe :: forall b a. b -> (a -> b) -> Maybe a -> b
+ min :: forall a. Ord a => a -> a -> a
+ minBound :: forall t. Bounded t => t
+ minimum :: forall (t :: * -> *) a. (Ord a, Foldable t) => t a -> a
+ mod :: forall a. Integral a => a -> a -> a
+ negate :: forall a. Num a => a -> a
+ not :: Bool -> Bool
+ notElem ::
+ forall a (t :: * -> *). (Eq a, Foldable t) => a -> t a -> Bool
+ null :: forall (t :: * -> *) a. Foldable t => t a -> Bool
+ odd :: forall a. Integral a => a -> Bool
+ or :: forall (t :: * -> *). Foldable t => t Bool -> Bool
+ otherwise :: Bool
+ pi :: forall t. Floating t => t
+ pred :: forall a. Enum a => a -> a
+ print :: forall a. Show a => a -> IO ()
+ product :: forall (t :: * -> *) a. (Num a, Foldable t) => t a -> a
+ properFraction ::
+ forall a b. (Integral b, RealFrac a) => a -> (b, a)
+ putChar :: Char -> IO ()
+ putStr :: String -> IO ()
+ putStrLn :: String -> IO ()
+ quot :: forall a. Integral a => a -> a -> a
+ quotRem :: forall a. Integral a => a -> a -> (a, a)
+ read :: forall a. Read a => String -> a
+ readFile :: FilePath -> IO String
+ readIO :: forall a. Read a => String -> IO a
+ readList :: forall a. Read a => ReadS [a]
+ readLn :: forall a. Read a => IO a
+ readParen :: forall a. Bool -> ReadS a -> ReadS a
+ reads :: forall a. Read a => ReadS a
+ readsPrec :: forall a. Read a => Int -> ReadS a
+ realToFrac :: forall a b. (Fractional b, Real a) => a -> b
+ recip :: forall a. Fractional a => a -> a
+ rem :: forall a. Integral a => a -> a -> a
+ repeat :: forall a. a -> [a]
+ replicate :: forall a. Int -> a -> [a]
+ return :: forall (m :: * -> *) a. Monad m => a -> m a
+ reverse :: forall a. [a] -> [a]
+ round :: forall a b. (Integral b, RealFrac a) => a -> b
+ scaleFloat :: forall a. RealFloat a => Int -> a -> a
+ scanl :: forall b a. (b -> a -> b) -> b -> [a] -> [b]
+ scanl1 :: forall a. (a -> a -> a) -> [a] -> [a]
+ scanr :: forall a b. (a -> b -> b) -> b -> [a] -> [b]
+ scanr1 :: forall a. (a -> a -> a) -> [a] -> [a]
+ seq :: forall a b. a -> b -> b
+ sequence ::
+ forall (t :: * -> *) (m :: * -> *) a.
+ (Monad m, Traversable t) =>
+ t (m a) -> m (t a)
+ sequence_ ::
+ forall (t :: * -> *) (m :: * -> *) a.
+ (Monad m, Foldable t) =>
+ t (m a) -> m ()
+ show :: forall a. Show a => a -> String
+ showChar :: Char -> ShowS
+ showList :: forall a. Show a => [a] -> ShowS
+ showParen :: Bool -> ShowS -> ShowS
+ showString :: String -> ShowS
+ shows :: forall a. Show a => a -> ShowS
+ showsPrec :: forall a. Show a => Int -> a -> ShowS
+ significand :: forall a. RealFloat a => a -> a
+ signum :: forall a. Num a => a -> a
+ sin :: forall a. Floating a => a -> a
+ sinh :: forall a. Floating a => a -> a
+ snd :: forall a b. (a, b) -> b
+ span :: forall a. (a -> Bool) -> [a] -> ([a], [a])
+ splitAt :: forall a. Int -> [a] -> ([a], [a])
+ sqrt :: forall a. Floating a => a -> a
+ subtract :: forall a. Num a => a -> a -> a
+ succ :: forall a. Enum a => a -> a
+ sum :: forall (t :: * -> *) a. (Num a, Foldable t) => t a -> a
+ tail :: forall a. [a] -> [a]
+ take :: forall a. Int -> [a] -> [a]
+ takeWhile :: forall a. (a -> Bool) -> [a] -> [a]
+ tan :: forall a. Floating a => a -> a
+ tanh :: forall a. Floating a => a -> a
+ toEnum :: forall a. Enum a => Int -> a
+ toInteger :: forall a. Integral a => a -> Integer
+ toRational :: forall a. Real a => a -> Rational
+ truncate :: forall a b. (Integral b, RealFrac a) => a -> b
+ uncurry :: forall a b c. (a -> b -> c) -> (a, b) -> c
+ undefined :: forall t. t
+ unlines :: [String] -> String
+ until :: forall a. (a -> Bool) -> (a -> a) -> a -> a
+ unwords :: [String] -> String
+ unzip :: forall a b. [(a, b)] -> ([a], [b])
+ unzip3 :: forall a b c. [(a, b, c)] -> ([a], [b], [c])
+ userError :: String -> IOError
+ words :: String -> [String]
+ writeFile :: FilePath -> String -> IO ()
+ zip :: forall a b. [a] -> [b] -> [(a, b)]
+ zip3 :: forall a b c. [a] -> [b] -> [c] -> [(a, b, c)]
+ zipWith :: forall a b c. (a -> b -> c) -> [a] -> [b] -> [c]
+ zipWith3 ::
+ forall a b c d. (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ || :: Bool -> Bool -> Bool
+TYPE CONSTRUCTORS
+COERCION AXIOMS
+Dependent modules: []
+Dependent packages: [base-4.8.2.0, ghc-prim-0.4.0.0,
+ integer-gmp-1.0.0.0]
diff --git a/testsuite/tests/partial-sigs/should_compile/ShowNamed.stderr b/testsuite/tests/partial-sigs/should_compile/ShowNamed.stderr index a986d76fa7..97eb78730c 100644 --- a/testsuite/tests/partial-sigs/should_compile/ShowNamed.stderr +++ b/testsuite/tests/partial-sigs/should_compile/ShowNamed.stderr @@ -1,7 +1,7 @@ -TYPE SIGNATURES - showTwo :: forall w_a. Show w_a => w_a -> String -TYPE CONSTRUCTORS -COERCION AXIOMS -Dependent modules: [] -Dependent packages: [base-4.8.2.0, ghc-prim-0.4.0.0, - integer-gmp-1.0.0.0] +TYPE SIGNATURES
+ showTwo :: forall a. Show a => a -> String
+TYPE CONSTRUCTORS
+COERCION AXIOMS
+Dependent modules: []
+Dependent packages: [base-4.8.2.0, ghc-prim-0.4.0.0,
+ integer-gmp-1.0.0.0]
diff --git a/testsuite/tests/partial-sigs/should_compile/SimpleGen.stderr b/testsuite/tests/partial-sigs/should_compile/SimpleGen.stderr index e2b91c1c8c..8f2efacc84 100644 --- a/testsuite/tests/partial-sigs/should_compile/SimpleGen.stderr +++ b/testsuite/tests/partial-sigs/should_compile/SimpleGen.stderr @@ -1,7 +1,7 @@ -TYPE SIGNATURES - bar :: forall w_. w_ -> Bool -TYPE CONSTRUCTORS -COERCION AXIOMS -Dependent modules: [] -Dependent packages: [base-4.8.2.0, ghc-prim-0.4.0.0, - integer-gmp-1.0.0.0] +TYPE SIGNATURES
+ bar :: forall t. t -> Bool
+TYPE CONSTRUCTORS
+COERCION AXIOMS
+Dependent modules: []
+Dependent packages: [base-4.8.2.0, ghc-prim-0.4.0.0,
+ integer-gmp-1.0.0.0]
diff --git a/testsuite/tests/partial-sigs/should_compile/SplicesUsed.stderr b/testsuite/tests/partial-sigs/should_compile/SplicesUsed.stderr index 312cf25217..de30497289 100644 --- a/testsuite/tests/partial-sigs/should_compile/SplicesUsed.stderr +++ b/testsuite/tests/partial-sigs/should_compile/SplicesUsed.stderr @@ -1,73 +1,82 @@ -[1 of 2] Compiling Splices ( Splices.hs, Splices.o ) -[2 of 2] Compiling SplicesUsed ( SplicesUsed.hs, SplicesUsed.o ) - -SplicesUsed.hs:7:16: warning: - Found type wildcard ‘_’ standing for ‘Maybe Bool’ - In the type signature for ‘maybeBool’: _ - -SplicesUsed.hs:8:15: warning: - Found type wildcard ‘_a’ standing for ‘Maybe Bool’ - Relevant bindings include - maybeBool :: Maybe Bool (bound at SplicesUsed.hs:8:1) - In an expression type signature: _a -> _a - In the expression: id :: _a -> _a - In the expression: (id :: _a -> _a) (Just True :: Maybe _) - -SplicesUsed.hs:8:27: warning: - Found type wildcard ‘_’ standing for ‘Bool’ - Relevant bindings include - maybeBool :: Maybe Bool (bound at SplicesUsed.hs:8:1) - In an expression type signature: Maybe _ - In the first argument of ‘id :: _a -> _a’, namely - ‘(Just True :: Maybe _)’ - In the expression: (id :: _a -> _a) (Just True :: Maybe _) - -SplicesUsed.hs:10:17: warning: - Found type wildcard ‘_’ standing for ‘(Char, a)’ - Where: ‘a’ is a rigid type variable bound by - the inferred type of charA :: a -> (Char, a) - at SplicesUsed.hs:10:10 - In the type signature for ‘charA’: a -> _ - -SplicesUsed.hs:13:14: warning: - Found type wildcard ‘_’ standing for ‘a -> Bool’ - Where: ‘a’ is a rigid type variable bound by - the inferred type of filter' :: (a -> Bool) -> [a] -> [a] - at SplicesUsed.hs:14:1 - In the type signature for ‘filter'’: _ -> _ -> _ - -SplicesUsed.hs:13:14: warning: - Found type wildcard ‘_’ standing for ‘[a]’ - Where: ‘a’ is a rigid type variable bound by - the inferred type of filter' :: (a -> Bool) -> [a] -> [a] - at SplicesUsed.hs:14:1 - In the type signature for ‘filter'’: _ -> _ -> _ - -SplicesUsed.hs:13:14: warning: - Found type wildcard ‘_’ standing for ‘[a]’ - Where: ‘a’ is a rigid type variable bound by - the inferred type of filter' :: (a -> Bool) -> [a] -> [a] - at SplicesUsed.hs:14:1 - In the type signature for ‘filter'’: _ -> _ -> _ - -SplicesUsed.hs:16:3: warning: - Found hole ‘_’ with inferred constraints: Eq a - In the type signature for ‘foo’: _ => _ - -SplicesUsed.hs:16:3: warning: - Found type wildcard ‘_’ standing for ‘a -> a -> Bool’ - Where: ‘a’ is a rigid type variable bound by - the inferred type of foo :: Eq a => a -> a -> Bool - at SplicesUsed.hs:16:3 - In the type signature for ‘foo’: _ => _ - -SplicesUsed.hs:18:3: warning: - Found type wildcard ‘_a’ standing for ‘Bool’ - In the type signature for ‘bar’: _a -> _b -> (_a, _b) - -SplicesUsed.hs:18:3: warning: - Found type wildcard ‘_b’ standing for ‘w_b’ - Where: ‘w_b’ is a rigid type variable bound by - the inferred type of bar :: Bool -> w_b -> (Bool, w_b) - at SplicesUsed.hs:18:3 - In the type signature for ‘bar’: _a -> _b -> (_a, _b) +[1 of 2] Compiling Splices ( Splices.hs, Splices.o )
+[2 of 2] Compiling SplicesUsed ( SplicesUsed.hs, SplicesUsed.o )
+
+SplicesUsed.hs:7:16: warning:
+ Found type wildcard ‘_’ standing for ‘Maybe Bool’
+ In the type signature for:
+ maybeBool :: _
+
+SplicesUsed.hs:8:15: warning:
+ Found type wildcard ‘_a’ standing for ‘Maybe Bool’
+ Relevant bindings include
+ maybeBool :: Maybe Bool (bound at SplicesUsed.hs:8:1)
+ In an expression type signature: _a -> _a
+ In the expression: id :: _a -> _a
+ In the expression: (id :: _a -> _a) (Just True :: Maybe _)
+
+SplicesUsed.hs:8:27: warning:
+ Found type wildcard ‘_’ standing for ‘Bool’
+ Relevant bindings include
+ maybeBool :: Maybe Bool (bound at SplicesUsed.hs:8:1)
+ In an expression type signature: Maybe _
+ In the first argument of ‘id :: _a -> _a’, namely
+ ‘(Just True :: Maybe _)’
+ In the expression: (id :: _a -> _a) (Just True :: Maybe _)
+
+SplicesUsed.hs:10:17: warning:
+ Found type wildcard ‘_’ standing for ‘(Char, a)’
+ Where: ‘a’ is a rigid type variable bound by
+ the inferred type of charA :: a -> (Char, a)
+ at SplicesUsed.hs:10:10
+ In the type signature for:
+ charA :: a -> (_)
+
+SplicesUsed.hs:13:14: warning:
+ Found type wildcard ‘_’ standing for ‘a -> Bool’
+ Where: ‘a’ is a rigid type variable bound by
+ the inferred type of filter' :: (a -> Bool) -> [a] -> [a]
+ at SplicesUsed.hs:14:1
+ In the type signature for:
+ filter' :: _ -> _ -> _
+
+SplicesUsed.hs:13:14: warning:
+ Found type wildcard ‘_’ standing for ‘[a]’
+ Where: ‘a’ is a rigid type variable bound by
+ the inferred type of filter' :: (a -> Bool) -> [a] -> [a]
+ at SplicesUsed.hs:14:1
+ In the type signature for:
+ filter' :: _ -> _ -> _
+
+SplicesUsed.hs:13:14: warning:
+ Found type wildcard ‘_’ standing for ‘[a]’
+ Where: ‘a’ is a rigid type variable bound by
+ the inferred type of filter' :: (a -> Bool) -> [a] -> [a]
+ at SplicesUsed.hs:14:1
+ In the type signature for:
+ filter' :: _ -> _ -> _
+
+SplicesUsed.hs:16:3: warning:
+ Found hole ‘_’ with inferred constraints: Eq a
+ In the type signature for:
+ foo :: _ => _
+
+SplicesUsed.hs:16:3: warning:
+ Found type wildcard ‘_’ standing for ‘a -> a -> Bool’
+ Where: ‘a’ is a rigid type variable bound by
+ the inferred type of foo :: Eq a => a -> a -> Bool
+ at SplicesUsed.hs:16:3
+ In the type signature for:
+ foo :: _ => _
+
+SplicesUsed.hs:18:3: warning:
+ Found type wildcard ‘_a’ standing for ‘Bool’
+ In the type signature for:
+ bar :: _a -> _b -> (_a, _b)
+
+SplicesUsed.hs:18:3: warning:
+ Found type wildcard ‘_b’ standing for ‘t’
+ Where: ‘t’ is a rigid type variable bound by
+ the inferred type of bar :: Bool -> t -> (Bool, t)
+ at SplicesUsed.hs:18:3
+ In the type signature for:
+ bar :: _a -> _b -> (_a, _b)
diff --git a/testsuite/tests/partial-sigs/should_compile/T10403.stderr b/testsuite/tests/partial-sigs/should_compile/T10403.stderr index 389f676eaf..8af7da3d81 100644 --- a/testsuite/tests/partial-sigs/should_compile/T10403.stderr +++ b/testsuite/tests/partial-sigs/should_compile/T10403.stderr @@ -1,36 +1,39 @@ - -T10403.hs:15:7: warning: - Found hole ‘_’ with inferred constraints: Functor f - In the type signature for ‘h1’: _ => _ - -T10403.hs:15:12: warning: - Found type wildcard ‘_’ standing for ‘(a -> b) -> f a -> H f’ - Where: ‘f’ is a rigid type variable bound by - the inferred type of h1 :: Functor f => (a -> b) -> f a -> H f - at T10403.hs:17:1 - ‘b’ is a rigid type variable bound by - the inferred type of h1 :: Functor f => (a -> b) -> f a -> H f - at T10403.hs:17:1 - ‘a’ is a rigid type variable bound by - the inferred type of h1 :: Functor f => (a -> b) -> f a -> H f - at T10403.hs:17:1 - In the type signature for ‘h1’: _ => _ - -T10403.hs:19:7: warning: - Found type wildcard ‘_’ standing for ‘(a -> b) -> f a -> H f’ - Where: ‘f’ is a rigid type variable bound by - the inferred type of h2 :: Functor f => (a -> b) -> f a -> H f - at T10403.hs:21:1 - ‘b’ is a rigid type variable bound by - the inferred type of h2 :: Functor f => (a -> b) -> f a -> H f - at T10403.hs:21:1 - ‘a’ is a rigid type variable bound by - the inferred type of h2 :: Functor f => (a -> b) -> f a -> H f - at T10403.hs:21:1 - In the type signature for ‘h2’: _ - -T10403.hs:21:1: warning: - No instance for (Functor f) - When checking that ‘h2’ has the inferred type - h2 :: forall (f :: * -> *) b a. (a -> b) -> f a -> H f - Probable cause: the inferred type is ambiguous +
+T10403.hs:15:7: warning:
+ Found hole ‘_’ with inferred constraints: Functor f
+ In the type signature for:
+ h1 :: _ => _
+
+T10403.hs:15:12: warning:
+ Found type wildcard ‘_’ standing for ‘(a -> b) -> f a -> H f’
+ Where: ‘f’ is a rigid type variable bound by
+ the inferred type of h1 :: Functor f => (a -> b) -> f a -> H f
+ at T10403.hs:17:1
+ ‘b’ is a rigid type variable bound by
+ the inferred type of h1 :: Functor f => (a -> b) -> f a -> H f
+ at T10403.hs:17:1
+ ‘a’ is a rigid type variable bound by
+ the inferred type of h1 :: Functor f => (a -> b) -> f a -> H f
+ at T10403.hs:17:1
+ In the type signature for:
+ h1 :: _ => _
+
+T10403.hs:19:7: warning:
+ Found type wildcard ‘_’ standing for ‘(a -> b) -> f a -> H f’
+ Where: ‘f’ is a rigid type variable bound by
+ the inferred type of h2 :: Functor f => (a -> b) -> f a -> H f
+ at T10403.hs:21:1
+ ‘b’ is a rigid type variable bound by
+ the inferred type of h2 :: Functor f => (a -> b) -> f a -> H f
+ at T10403.hs:21:1
+ ‘a’ is a rigid type variable bound by
+ the inferred type of h2 :: Functor f => (a -> b) -> f a -> H f
+ at T10403.hs:21:1
+ In the type signature for:
+ h2 :: _
+
+T10403.hs:21:1: warning:
+ No instance for (Functor f)
+ When checking that ‘h2’ has the inferred type
+ h2 :: forall (f :: * -> *) b a. (a -> b) -> f a -> H f
+ Probable cause: the inferred type is ambiguous
diff --git a/testsuite/tests/partial-sigs/should_compile/T10438.stderr b/testsuite/tests/partial-sigs/should_compile/T10438.stderr index 34fe24bba4..7c2a0907e8 100644 --- a/testsuite/tests/partial-sigs/should_compile/T10438.stderr +++ b/testsuite/tests/partial-sigs/should_compile/T10438.stderr @@ -1,26 +1,27 @@ - -T10438.hs:7:22: warning: - Found type wildcard ‘_’ standing for ‘w_1’ - Where: ‘w_1’ is a rigid type variable bound by - the inferred type of g :: w_1 -> w_1 at T10438.hs:6:9 - Relevant bindings include - r :: w_1 (bound at T10438.hs:6:11) - g :: w_1 -> w_1 (bound at T10438.hs:6:9) - f :: t (bound at T10438.hs:5:5) - foo :: t -> w_ -> w_ (bound at T10438.hs:5:1) - In the type signature for ‘x’: _ - In an equation for ‘g’: - g r - = x - where - x :: _ - x = r - In an equation for ‘foo’: - foo f - = g - where - g r - = x - where - x :: _ - x = r +
+T10438.hs:7:22: warning:
+ Found type wildcard ‘_’ standing for ‘t2’
+ Where: ‘t2’ is a rigid type variable bound by
+ the inferred type of g :: t2 -> t2 at T10438.hs:6:9
+ Relevant bindings include
+ r :: t2 (bound at T10438.hs:6:11)
+ g :: t2 -> t2 (bound at T10438.hs:6:9)
+ f :: t (bound at T10438.hs:5:5)
+ foo :: t -> t1 -> t1 (bound at T10438.hs:5:1)
+ In the type signature for:
+ x :: _
+ In an equation for ‘g’:
+ g r
+ = x
+ where
+ x :: _
+ x = r
+ In an equation for ‘foo’:
+ foo f
+ = g
+ where
+ g r
+ = x
+ where
+ x :: _
+ x = r
diff --git a/testsuite/tests/partial-sigs/should_compile/T10519.stderr b/testsuite/tests/partial-sigs/should_compile/T10519.stderr index 254292f6b2..de53da2d33 100644 --- a/testsuite/tests/partial-sigs/should_compile/T10519.stderr +++ b/testsuite/tests/partial-sigs/should_compile/T10519.stderr @@ -1,4 +1,5 @@ - -T10519.hs:5:18: warning: - Found hole ‘_’ with inferred constraints: Eq a - In the type signature for ‘foo’: _ => a -> a -> Bool +
+T10519.hs:5:18: warning:
+ Found hole ‘_’ with inferred constraints: Eq a
+ In the type signature for:
+ foo :: forall a. _ => a -> a -> Bool
diff --git a/testsuite/tests/partial-sigs/should_compile/Uncurry.stderr b/testsuite/tests/partial-sigs/should_compile/Uncurry.stderr index 707bb9e770..6a4028402b 100644 --- a/testsuite/tests/partial-sigs/should_compile/Uncurry.stderr +++ b/testsuite/tests/partial-sigs/should_compile/Uncurry.stderr @@ -1,7 +1,7 @@ -TYPE SIGNATURES - unc :: forall w_ w_1 w_2. (w_1 -> w_2 -> w_) -> (w_1, w_2) -> w_ -TYPE CONSTRUCTORS -COERCION AXIOMS -Dependent modules: [] -Dependent packages: [base-4.8.2.0, ghc-prim-0.4.0.0, - integer-gmp-1.0.0.0] +TYPE SIGNATURES
+ unc :: forall t t1 t2. (t -> t1 -> t2) -> (t, t1) -> t2
+TYPE CONSTRUCTORS
+COERCION AXIOMS
+Dependent modules: []
+Dependent packages: [base-4.8.2.0, ghc-prim-0.4.0.0,
+ integer-gmp-1.0.0.0]
diff --git a/testsuite/tests/partial-sigs/should_compile/UncurryNamed.stderr b/testsuite/tests/partial-sigs/should_compile/UncurryNamed.stderr index e1b1bfdf1a..9048c1d524 100644 --- a/testsuite/tests/partial-sigs/should_compile/UncurryNamed.stderr +++ b/testsuite/tests/partial-sigs/should_compile/UncurryNamed.stderr @@ -1,7 +1,7 @@ -TYPE SIGNATURES - unc :: forall w_a w_b w_c. (w_a -> w_b -> w_c) -> (w_a, w_b) -> w_c -TYPE CONSTRUCTORS -COERCION AXIOMS -Dependent modules: [] -Dependent packages: [base-4.8.2.0, ghc-prim-0.4.0.0, - integer-gmp-1.0.0.0] +TYPE SIGNATURES
+ unc :: forall t a b. (a -> b -> t) -> (a, b) -> t
+TYPE CONSTRUCTORS
+COERCION AXIOMS
+Dependent modules: []
+Dependent packages: [base-4.8.2.0, ghc-prim-0.4.0.0,
+ integer-gmp-1.0.0.0]
diff --git a/testsuite/tests/partial-sigs/should_compile/WarningWildcardInstantiations.stderr b/testsuite/tests/partial-sigs/should_compile/WarningWildcardInstantiations.stderr index b259e32757..3037db7666 100644 --- a/testsuite/tests/partial-sigs/should_compile/WarningWildcardInstantiations.stderr +++ b/testsuite/tests/partial-sigs/should_compile/WarningWildcardInstantiations.stderr @@ -1,47 +1,53 @@ -TYPE SIGNATURES - bar :: forall w_ w_1. w_ -> (w_ -> w_1) -> w_1 - foo :: forall w_a. (Show w_a, Enum w_a) => w_a -> String -TYPE CONSTRUCTORS -COERCION AXIOMS -Dependent modules: [] -Dependent packages: [base-4.8.2.0, ghc-prim-0.4.0.0, - integer-gmp-1.0.0.0] - -WarningWildcardInstantiations.hs:5:14: warning: - Found type wildcard ‘_a’ standing for ‘w_a’ - Where: ‘w_a’ is a rigid type variable bound by - the inferred type of foo :: (Enum w_a, Show w_a) => w_a -> String - at WarningWildcardInstantiations.hs:6:1 - In the type signature for ‘foo’: (Show _a, _) => _a -> _ - -WarningWildcardInstantiations.hs:5:18: warning: - Found hole ‘_’ with inferred constraints: Enum w_a - In the type signature for ‘foo’: (Show _a, _) => _a -> _ - -WarningWildcardInstantiations.hs:5:30: warning: - Found type wildcard ‘_’ standing for ‘String’ - In the type signature for ‘foo’: (Show _a, _) => _a -> _ - -WarningWildcardInstantiations.hs:8:8: warning: - Found type wildcard ‘_’ standing for ‘w_’ - Where: ‘w_’ is a rigid type variable bound by - the inferred type of bar :: w_ -> (w_ -> w_1) -> w_1 - at WarningWildcardInstantiations.hs:9:1 - In the type signature for ‘bar’: _ -> _ -> _ - -WarningWildcardInstantiations.hs:8:13: warning: - Found type wildcard ‘_’ standing for ‘w_ -> w_1’ - Where: ‘w_’ is a rigid type variable bound by - the inferred type of bar :: w_ -> (w_ -> w_1) -> w_1 - at WarningWildcardInstantiations.hs:9:1 - ‘w_1’ is a rigid type variable bound by - the inferred type of bar :: w_ -> (w_ -> w_1) -> w_1 - at WarningWildcardInstantiations.hs:9:1 - In the type signature for ‘bar’: _ -> _ -> _ - -WarningWildcardInstantiations.hs:8:18: warning: - Found type wildcard ‘_’ standing for ‘w_1’ - Where: ‘w_1’ is a rigid type variable bound by - the inferred type of bar :: w_ -> (w_ -> w_1) -> w_1 - at WarningWildcardInstantiations.hs:9:1 - In the type signature for ‘bar’: _ -> _ -> _ +TYPE SIGNATURES
+ bar :: forall t t1. t -> (t -> t1) -> t1
+ foo :: forall a. (Show a, Enum a) => a -> String
+TYPE CONSTRUCTORS
+COERCION AXIOMS
+Dependent modules: []
+Dependent packages: [base-4.8.2.0, ghc-prim-0.4.0.0,
+ integer-gmp-1.0.0.0]
+
+WarningWildcardInstantiations.hs:5:14: warning:
+ Found type wildcard ‘_a’ standing for ‘a’
+ Where: ‘a’ is a rigid type variable bound by
+ the inferred type of foo :: (Enum a, Show a) => a -> String
+ at WarningWildcardInstantiations.hs:6:1
+ In the type signature for:
+ foo :: (Show _a, _) => _a -> _
+
+WarningWildcardInstantiations.hs:5:18: warning:
+ Found hole ‘_’ with inferred constraints: Enum a
+ In the type signature for:
+ foo :: (Show _a, _) => _a -> _
+
+WarningWildcardInstantiations.hs:5:30: warning:
+ Found type wildcard ‘_’ standing for ‘String’
+ In the type signature for:
+ foo :: (Show _a, _) => _a -> _
+
+WarningWildcardInstantiations.hs:8:8: warning:
+ Found type wildcard ‘_’ standing for ‘t’
+ Where: ‘t’ is a rigid type variable bound by
+ the inferred type of bar :: t -> (t -> t1) -> t1
+ at WarningWildcardInstantiations.hs:9:1
+ In the type signature for:
+ bar :: _ -> _ -> _
+
+WarningWildcardInstantiations.hs:8:13: warning:
+ Found type wildcard ‘_’ standing for ‘t -> t1’
+ Where: ‘t’ is a rigid type variable bound by
+ the inferred type of bar :: t -> (t -> t1) -> t1
+ at WarningWildcardInstantiations.hs:9:1
+ ‘t1’ is a rigid type variable bound by
+ the inferred type of bar :: t -> (t -> t1) -> t1
+ at WarningWildcardInstantiations.hs:9:1
+ In the type signature for:
+ bar :: _ -> _ -> _
+
+WarningWildcardInstantiations.hs:8:18: warning:
+ Found type wildcard ‘_’ standing for ‘t1’
+ Where: ‘t1’ is a rigid type variable bound by
+ the inferred type of bar :: t -> (t -> t1) -> t1
+ at WarningWildcardInstantiations.hs:9:1
+ In the type signature for:
+ bar :: _ -> _ -> _
diff --git a/testsuite/tests/partial-sigs/should_fail/Defaulting1MROff.stderr b/testsuite/tests/partial-sigs/should_fail/Defaulting1MROff.stderr index 560fe792db..43bd7b1938 100644 --- a/testsuite/tests/partial-sigs/should_fail/Defaulting1MROff.stderr +++ b/testsuite/tests/partial-sigs/should_fail/Defaulting1MROff.stderr @@ -1,6 +1,6 @@ - -Defaulting1MROff.hs:6:1: - No instance for (Num w_) - When checking that ‘alpha’ has the inferred type - alpha :: forall w_. w_ - Probable cause: the inferred type is ambiguous +
+Defaulting1MROff.hs:6:1: error:
+ No instance for (Num t)
+ When checking that ‘alpha’ has the inferred type
+ alpha :: forall t. t
+ Probable cause: the inferred type is ambiguous
diff --git a/testsuite/tests/partial-sigs/should_fail/ExtraConstraintsWildcardNotEnabled.stderr b/testsuite/tests/partial-sigs/should_fail/ExtraConstraintsWildcardNotEnabled.stderr index 64839127c7..a8ea30ecf7 100644 --- a/testsuite/tests/partial-sigs/should_fail/ExtraConstraintsWildcardNotEnabled.stderr +++ b/testsuite/tests/partial-sigs/should_fail/ExtraConstraintsWildcardNotEnabled.stderr @@ -1,5 +1,6 @@ - -ExtraConstraintsWildcardNotEnabled.hs:4:10: - Found hole ‘_’ with inferred constraints: Show a - To use the inferred type, enable PartialTypeSignatures - In the type signature for ‘show'’: _ => a -> String +
+ExtraConstraintsWildcardNotEnabled.hs:4:10: error:
+ Found hole ‘_’ with inferred constraints: Show a
+ To use the inferred type, enable PartialTypeSignatures
+ In the type signature for:
+ show' :: _ => a -> String
diff --git a/testsuite/tests/partial-sigs/should_fail/InstantiatedNamedWildcardsInConstraints.stderr b/testsuite/tests/partial-sigs/should_fail/InstantiatedNamedWildcardsInConstraints.stderr index e2ba5c19c9..2bdc01e8ef 100644 --- a/testsuite/tests/partial-sigs/should_fail/InstantiatedNamedWildcardsInConstraints.stderr +++ b/testsuite/tests/partial-sigs/should_fail/InstantiatedNamedWildcardsInConstraints.stderr @@ -1,13 +1,15 @@ - -InstantiatedNamedWildcardsInConstraints.hs:4:14: error: - Found type wildcard ‘_a’ standing for ‘b’ - Where: ‘b’ is a rigid type variable bound by - the inferred type of foo :: (Enum b, Show b) => b -> (String, b) - at InstantiatedNamedWildcardsInConstraints.hs:4:8 - To use the inferred type, enable PartialTypeSignatures - In the type signature for ‘foo’: (Enum _a, _) => _a -> (String, b) - -InstantiatedNamedWildcardsInConstraints.hs:4:18: error: - Found hole ‘_’ with inferred constraints: Show b - To use the inferred type, enable PartialTypeSignatures - In the type signature for ‘foo’: (Enum _a, _) => _a -> (String, b) +
+InstantiatedNamedWildcardsInConstraints.hs:4:14: error:
+ Found type wildcard ‘_a’ standing for ‘b’
+ Where: ‘b’ is a rigid type variable bound by
+ the inferred type of foo :: (Enum b, Show b) => b -> (String, b)
+ at InstantiatedNamedWildcardsInConstraints.hs:4:8
+ To use the inferred type, enable PartialTypeSignatures
+ In the type signature for:
+ foo :: (Enum _a, _) => _a -> (String, b)
+
+InstantiatedNamedWildcardsInConstraints.hs:4:18: error:
+ Found hole ‘_’ with inferred constraints: Show b
+ To use the inferred type, enable PartialTypeSignatures
+ In the type signature for:
+ foo :: (Enum _a, _) => _a -> (String, b)
diff --git a/testsuite/tests/partial-sigs/should_fail/NamedWildcardsEnabled.stderr b/testsuite/tests/partial-sigs/should_fail/NamedWildcardsEnabled.stderr index 5939ed79b0..6fa82994e4 100644 --- a/testsuite/tests/partial-sigs/should_fail/NamedWildcardsEnabled.stderr +++ b/testsuite/tests/partial-sigs/should_fail/NamedWildcardsEnabled.stderr @@ -1,10 +1,12 @@ - -NamedWildcardsEnabled.hs:4:8: error: - Found type wildcard ‘_a’ standing for ‘Bool’ - To use the inferred type, enable PartialTypeSignatures - In the type signature for ‘foo’: _a -> _b - -NamedWildcardsEnabled.hs:4:14: error: - Found type wildcard ‘_b’ standing for ‘Bool’ - To use the inferred type, enable PartialTypeSignatures - In the type signature for ‘foo’: _a -> _b +
+NamedWildcardsEnabled.hs:4:8: error:
+ Found type wildcard ‘_a’ standing for ‘Bool’
+ To use the inferred type, enable PartialTypeSignatures
+ In the type signature for:
+ foo :: _a -> _b
+
+NamedWildcardsEnabled.hs:4:14: error:
+ Found type wildcard ‘_b’ standing for ‘Bool’
+ To use the inferred type, enable PartialTypeSignatures
+ In the type signature for:
+ foo :: _a -> _b
diff --git a/testsuite/tests/partial-sigs/should_fail/PartialTypeSignaturesDisabled.stderr b/testsuite/tests/partial-sigs/should_fail/PartialTypeSignaturesDisabled.stderr index 5559c16969..fbff3580d0 100644 --- a/testsuite/tests/partial-sigs/should_fail/PartialTypeSignaturesDisabled.stderr +++ b/testsuite/tests/partial-sigs/should_fail/PartialTypeSignaturesDisabled.stderr @@ -1,10 +1,12 @@ - -PartialTypeSignaturesDisabled.hs:4:8: error: - Found type wildcard ‘_’ standing for ‘Bool’ - To use the inferred type, enable PartialTypeSignatures - In the type signature for ‘foo’: _ -> _ - -PartialTypeSignaturesDisabled.hs:4:13: error: - Found type wildcard ‘_’ standing for ‘Bool’ - To use the inferred type, enable PartialTypeSignatures - In the type signature for ‘foo’: _ -> _ +
+PartialTypeSignaturesDisabled.hs:4:8: error:
+ Found type wildcard ‘_’ standing for ‘Bool’
+ To use the inferred type, enable PartialTypeSignatures
+ In the type signature for:
+ foo :: _ -> _
+
+PartialTypeSignaturesDisabled.hs:4:13: error:
+ Found type wildcard ‘_’ standing for ‘Bool’
+ To use the inferred type, enable PartialTypeSignatures
+ In the type signature for:
+ foo :: _ -> _
diff --git a/testsuite/tests/partial-sigs/should_fail/TidyClash.stderr b/testsuite/tests/partial-sigs/should_fail/TidyClash.stderr index 11161be529..795789185e 100644 --- a/testsuite/tests/partial-sigs/should_fail/TidyClash.stderr +++ b/testsuite/tests/partial-sigs/should_fail/TidyClash.stderr @@ -1,16 +1,16 @@ - -TidyClash.hs:8:19: error: - Found type wildcard ‘_’ standing for ‘w_’ - Where: ‘w_’ is a rigid type variable bound by - the inferred type of bar :: w_2 -> (w_2, w_ -> w_1) - at TidyClash.hs:9:1 - To use the inferred type, enable PartialTypeSignatures - In the type signature for ‘bar’: w_ -> (w_, _ -> _) - -TidyClash.hs:8:24: error: - Found type wildcard ‘_’ standing for ‘w_1’ - Where: ‘w_1’ is a rigid type variable bound by - the inferred type of bar :: w_2 -> (w_2, w_ -> w_1) - at TidyClash.hs:9:1 - To use the inferred type, enable PartialTypeSignatures - In the type signature for ‘bar’: w_ -> (w_, _ -> _) +
+TidyClash.hs:8:19: error:
+ Found type wildcard ‘_’ standing for ‘t’
+ Where: ‘t’ is a rigid type variable bound by
+ the inferred type of bar :: w_ -> (w_, t -> t1) at TidyClash.hs:9:1
+ To use the inferred type, enable PartialTypeSignatures
+ In the type signature for:
+ bar :: w_ -> (w_, _ -> _)
+
+TidyClash.hs:8:24: error:
+ Found type wildcard ‘_’ standing for ‘t1’
+ Where: ‘t1’ is a rigid type variable bound by
+ the inferred type of bar :: w_ -> (w_, t -> t1) at TidyClash.hs:9:1
+ To use the inferred type, enable PartialTypeSignatures
+ In the type signature for:
+ bar :: w_ -> (w_, _ -> _)
diff --git a/testsuite/tests/partial-sigs/should_fail/Trac10045.stderr b/testsuite/tests/partial-sigs/should_fail/Trac10045.stderr index 14302fb98d..da0f8c78b7 100644 --- a/testsuite/tests/partial-sigs/should_fail/Trac10045.stderr +++ b/testsuite/tests/partial-sigs/should_fail/Trac10045.stderr @@ -1,45 +1,46 @@ - -Trac10045.hs:6:17: error: - Found type wildcard ‘_’ standing for ‘t1 -> a -> t2’ - Where: ‘t1’ is a rigid type variable bound by - the inferred type of copy :: Num a => t1 -> a -> t2 - at Trac10045.hs:7:9 - ‘t2’ is a rigid type variable bound by - the inferred type of copy :: Num a => t1 -> a -> t2 - at Trac10045.hs:7:9 - ‘a’ is a rigid type variable bound by - the inferred type of copy :: Num a => t1 -> a -> t2 - at Trac10045.hs:7:9 - To use the inferred type, enable PartialTypeSignatures - Relevant bindings include - ws1 :: () (bound at Trac10045.hs:5:11) - foo :: Meta -> t (bound at Trac10045.hs:5:1) - In the type signature for ‘copy’: _ - In the expression: - let - copy :: _ - copy w from = copy w 1 - in copy ws1 1 - In an equation for ‘foo’: - foo (Meta ws1) - = let - copy :: _ - copy w from = copy w 1 - in copy ws1 1 - -Trac10045.hs:7:9: error: - No instance for (Num a) - When checking that ‘copy’ has the inferred type - copy :: forall t t1 a. t -> a -> t1 - Probable cause: the inferred type is ambiguous - In the expression: - let - copy :: _ - copy w from = copy w 1 - in copy ws1 1 - In an equation for ‘foo’: - foo (Meta ws1) - = let - copy :: _ - copy w from = copy w 1 - in copy ws1 1 +
+Trac10045.hs:6:17: error:
+ Found type wildcard ‘_’ standing for ‘t1 -> a -> t2’
+ Where: ‘t1’ is a rigid type variable bound by
+ the inferred type of copy :: Num a => t1 -> a -> t2
+ at Trac10045.hs:7:9
+ ‘t2’ is a rigid type variable bound by
+ the inferred type of copy :: Num a => t1 -> a -> t2
+ at Trac10045.hs:7:9
+ ‘a’ is a rigid type variable bound by
+ the inferred type of copy :: Num a => t1 -> a -> t2
+ at Trac10045.hs:7:9
+ To use the inferred type, enable PartialTypeSignatures
+ Relevant bindings include
+ ws1 :: () (bound at Trac10045.hs:5:11)
+ foo :: Meta -> t (bound at Trac10045.hs:5:1)
+ In the type signature for:
+ copy :: _
+ In the expression:
+ let
+ copy :: _
+ copy w from = copy w 1
+ in copy ws1 1
+ In an equation for ‘foo’:
+ foo (Meta ws1)
+ = let
+ copy :: _
+ copy w from = copy w 1
+ in copy ws1 1
+
+Trac10045.hs:7:9: error:
+ No instance for (Num a)
+ When checking that ‘copy’ has the inferred type
+ copy :: forall t t1 a. t -> a -> t1
+ Probable cause: the inferred type is ambiguous
+ In the expression:
+ let
+ copy :: _
+ copy w from = copy w 1
+ in copy ws1 1
+ In an equation for ‘foo’:
+ foo (Meta ws1)
+ = let
+ copy :: _
+ copy w from = copy w 1
+ in copy ws1 1
diff --git a/testsuite/tests/partial-sigs/should_fail/WildcardInPatSynSig.stderr b/testsuite/tests/partial-sigs/should_fail/WildcardInPatSynSig.stderr index 9a4aca1429..7dd2a20a77 100644 --- a/testsuite/tests/partial-sigs/should_fail/WildcardInPatSynSig.stderr +++ b/testsuite/tests/partial-sigs/should_fail/WildcardInPatSynSig.stderr @@ -1,4 +1,5 @@ - -WildcardInPatSynSig.hs:4:37: - Unexpected wild card: ‘_’ - In the type signature for ‘Single’: Single :: _ -> [a] +
+WildcardInPatSynSig.hs:4:37: error:
+ Unexpected wild card: ‘_’
+ In the type signature for pattern synonym ‘Single’:
+ Single :: _ -> [a]
diff --git a/testsuite/tests/partial-sigs/should_fail/WildcardInstantiations.stderr b/testsuite/tests/partial-sigs/should_fail/WildcardInstantiations.stderr index b9442bb53c..d0d7dff480 100644 --- a/testsuite/tests/partial-sigs/should_fail/WildcardInstantiations.stderr +++ b/testsuite/tests/partial-sigs/should_fail/WildcardInstantiations.stderr @@ -1,45 +1,51 @@ - -WildcardInstantiations.hs:5:14: error: - Found type wildcard ‘_a’ standing for ‘w_a’ - Where: ‘w_a’ is a rigid type variable bound by - the inferred type of foo :: (Enum w_a, Show w_a) => w_a -> String - at WildcardInstantiations.hs:6:1 - To use the inferred type, enable PartialTypeSignatures - In the type signature for ‘foo’: (Show _a, _) => _a -> _ - -WildcardInstantiations.hs:5:18: error: - Found hole ‘_’ with inferred constraints: Enum w_a - To use the inferred type, enable PartialTypeSignatures - In the type signature for ‘foo’: (Show _a, _) => _a -> _ - -WildcardInstantiations.hs:5:30: error: - Found type wildcard ‘_’ standing for ‘String’ - To use the inferred type, enable PartialTypeSignatures - In the type signature for ‘foo’: (Show _a, _) => _a -> _ - -WildcardInstantiations.hs:8:8: error: - Found type wildcard ‘_’ standing for ‘w_’ - Where: ‘w_’ is a rigid type variable bound by - the inferred type of bar :: w_ -> (w_ -> w_1) -> w_1 - at WildcardInstantiations.hs:9:1 - To use the inferred type, enable PartialTypeSignatures - In the type signature for ‘bar’: _ -> _ -> _ - -WildcardInstantiations.hs:8:13: error: - Found type wildcard ‘_’ standing for ‘w_ -> w_1’ - Where: ‘w_’ is a rigid type variable bound by - the inferred type of bar :: w_ -> (w_ -> w_1) -> w_1 - at WildcardInstantiations.hs:9:1 - ‘w_1’ is a rigid type variable bound by - the inferred type of bar :: w_ -> (w_ -> w_1) -> w_1 - at WildcardInstantiations.hs:9:1 - To use the inferred type, enable PartialTypeSignatures - In the type signature for ‘bar’: _ -> _ -> _ - -WildcardInstantiations.hs:8:18: error: - Found type wildcard ‘_’ standing for ‘w_1’ - Where: ‘w_1’ is a rigid type variable bound by - the inferred type of bar :: w_ -> (w_ -> w_1) -> w_1 - at WildcardInstantiations.hs:9:1 - To use the inferred type, enable PartialTypeSignatures - In the type signature for ‘bar’: _ -> _ -> _ +
+WildcardInstantiations.hs:5:14: error:
+ Found type wildcard ‘_a’ standing for ‘a’
+ Where: ‘a’ is a rigid type variable bound by
+ the inferred type of foo :: (Enum a, Show a) => a -> String
+ at WildcardInstantiations.hs:6:1
+ To use the inferred type, enable PartialTypeSignatures
+ In the type signature for:
+ foo :: (Show _a, _) => _a -> _
+
+WildcardInstantiations.hs:5:18: error:
+ Found hole ‘_’ with inferred constraints: Enum a
+ To use the inferred type, enable PartialTypeSignatures
+ In the type signature for:
+ foo :: (Show _a, _) => _a -> _
+
+WildcardInstantiations.hs:5:30: error:
+ Found type wildcard ‘_’ standing for ‘String’
+ To use the inferred type, enable PartialTypeSignatures
+ In the type signature for:
+ foo :: (Show _a, _) => _a -> _
+
+WildcardInstantiations.hs:8:8: error:
+ Found type wildcard ‘_’ standing for ‘t’
+ Where: ‘t’ is a rigid type variable bound by
+ the inferred type of bar :: t -> (t -> t1) -> t1
+ at WildcardInstantiations.hs:9:1
+ To use the inferred type, enable PartialTypeSignatures
+ In the type signature for:
+ bar :: _ -> _ -> _
+
+WildcardInstantiations.hs:8:13: error:
+ Found type wildcard ‘_’ standing for ‘t -> t1’
+ Where: ‘t’ is a rigid type variable bound by
+ the inferred type of bar :: t -> (t -> t1) -> t1
+ at WildcardInstantiations.hs:9:1
+ ‘t1’ is a rigid type variable bound by
+ the inferred type of bar :: t -> (t -> t1) -> t1
+ at WildcardInstantiations.hs:9:1
+ To use the inferred type, enable PartialTypeSignatures
+ In the type signature for:
+ bar :: _ -> _ -> _
+
+WildcardInstantiations.hs:8:18: error:
+ Found type wildcard ‘_’ standing for ‘t1’
+ Where: ‘t1’ is a rigid type variable bound by
+ the inferred type of bar :: t -> (t -> t1) -> t1
+ at WildcardInstantiations.hs:9:1
+ To use the inferred type, enable PartialTypeSignatures
+ In the type signature for:
+ bar :: _ -> _ -> _
diff --git a/testsuite/tests/partial-sigs/should_fail/WildcardsInPatternAndExprSig.stderr b/testsuite/tests/partial-sigs/should_fail/WildcardsInPatternAndExprSig.stderr index 90929b7c8f..97dacfe20a 100644 --- a/testsuite/tests/partial-sigs/should_fail/WildcardsInPatternAndExprSig.stderr +++ b/testsuite/tests/partial-sigs/should_fail/WildcardsInPatternAndExprSig.stderr @@ -1,74 +1,74 @@ - -WildcardsInPatternAndExprSig.hs:4:18: error: - Found type wildcard ‘_a’ standing for ‘w_c’ - Where: ‘w_c’ is a rigid type variable bound by - the inferred type of bar :: Maybe [w_c] -> w_c -> [w_c] - at WildcardsInPatternAndExprSig.hs:4:1 - To use the inferred type, enable PartialTypeSignatures - Relevant bindings include - bar :: Maybe [w_c] -> w_c -> [w_c] - (bound at WildcardsInPatternAndExprSig.hs:4:1) - In a pattern type signature: _a - In the pattern: x :: _a - In the pattern: [x :: _a] - -WildcardsInPatternAndExprSig.hs:4:25: error: - Found type wildcard ‘_’ standing for ‘[w_c]’ - Where: ‘w_c’ is a rigid type variable bound by - the inferred type of bar :: Maybe [w_c] -> w_c -> [w_c] - at WildcardsInPatternAndExprSig.hs:4:1 - To use the inferred type, enable PartialTypeSignatures - Relevant bindings include - bar :: Maybe [w_c] -> w_c -> [w_c] - (bound at WildcardsInPatternAndExprSig.hs:4:1) - In a pattern type signature: _ - In the pattern: [x :: _a] :: _ - In the pattern: Just ([x :: _a] :: _) - -WildcardsInPatternAndExprSig.hs:4:38: error: - Found type wildcard ‘_b’ standing for ‘w_c’ - Where: ‘w_c’ is a rigid type variable bound by - the inferred type of bar :: Maybe [w_c] -> w_c -> [w_c] - at WildcardsInPatternAndExprSig.hs:4:1 - To use the inferred type, enable PartialTypeSignatures - Relevant bindings include - bar :: Maybe [w_c] -> w_c -> [w_c] - (bound at WildcardsInPatternAndExprSig.hs:4:1) - In a pattern type signature: Maybe [_b] - In the pattern: Just ([x :: _a] :: _) :: Maybe [_b] - In an equation for ‘bar’: - bar (Just ([x :: _a] :: _) :: Maybe [_b]) (z :: _c) - = [x, z] :: [_d] - -WildcardsInPatternAndExprSig.hs:4:49: error: - Found type wildcard ‘_c’ standing for ‘w_c’ - Where: ‘w_c’ is a rigid type variable bound by - the inferred type of bar :: Maybe [w_c] -> w_c -> [w_c] - at WildcardsInPatternAndExprSig.hs:4:1 - To use the inferred type, enable PartialTypeSignatures - Relevant bindings include - x :: w_c (bound at WildcardsInPatternAndExprSig.hs:4:13) - bar :: Maybe [w_c] -> w_c -> [w_c] - (bound at WildcardsInPatternAndExprSig.hs:4:1) - In a pattern type signature: _c - In the pattern: z :: _c - In an equation for ‘bar’: - bar (Just ([x :: _a] :: _) :: Maybe [_b]) (z :: _c) - = [x, z] :: [_d] - -WildcardsInPatternAndExprSig.hs:4:66: error: - Found type wildcard ‘_d’ standing for ‘w_c’ - Where: ‘w_c’ is a rigid type variable bound by - the inferred type of bar :: Maybe [w_c] -> w_c -> [w_c] - at WildcardsInPatternAndExprSig.hs:4:1 - To use the inferred type, enable PartialTypeSignatures - Relevant bindings include - z :: w_c (bound at WildcardsInPatternAndExprSig.hs:4:44) - x :: w_c (bound at WildcardsInPatternAndExprSig.hs:4:13) - bar :: Maybe [w_c] -> w_c -> [w_c] - (bound at WildcardsInPatternAndExprSig.hs:4:1) - In an expression type signature: [_d] - In the expression: [x, z] :: [_d] - In an equation for ‘bar’: - bar (Just ([x :: _a] :: _) :: Maybe [_b]) (z :: _c) - = [x, z] :: [_d] +
+WildcardsInPatternAndExprSig.hs:4:18: error:
+ Found type wildcard ‘_a’ standing for ‘t’
+ Where: ‘t’ is a rigid type variable bound by
+ the inferred type of bar :: Maybe [t] -> t -> [t]
+ at WildcardsInPatternAndExprSig.hs:4:1
+ To use the inferred type, enable PartialTypeSignatures
+ Relevant bindings include
+ bar :: Maybe [t] -> t -> [t]
+ (bound at WildcardsInPatternAndExprSig.hs:4:1)
+ In a pattern type signature: _a
+ In the pattern: x :: _a
+ In the pattern: [x :: _a]
+
+WildcardsInPatternAndExprSig.hs:4:25: error:
+ Found type wildcard ‘_’ standing for ‘[t]’
+ Where: ‘t’ is a rigid type variable bound by
+ the inferred type of bar :: Maybe [t] -> t -> [t]
+ at WildcardsInPatternAndExprSig.hs:4:1
+ To use the inferred type, enable PartialTypeSignatures
+ Relevant bindings include
+ bar :: Maybe [t] -> t -> [t]
+ (bound at WildcardsInPatternAndExprSig.hs:4:1)
+ In a pattern type signature: _
+ In the pattern: [x :: _a] :: _
+ In the pattern: Just ([x :: _a] :: _)
+
+WildcardsInPatternAndExprSig.hs:4:38: error:
+ Found type wildcard ‘_b’ standing for ‘t’
+ Where: ‘t’ is a rigid type variable bound by
+ the inferred type of bar :: Maybe [t] -> t -> [t]
+ at WildcardsInPatternAndExprSig.hs:4:1
+ To use the inferred type, enable PartialTypeSignatures
+ Relevant bindings include
+ bar :: Maybe [t] -> t -> [t]
+ (bound at WildcardsInPatternAndExprSig.hs:4:1)
+ In a pattern type signature: Maybe [_b]
+ In the pattern: Just ([x :: _a] :: _) :: Maybe [_b]
+ In an equation for ‘bar’:
+ bar (Just ([x :: _a] :: _) :: Maybe [_b]) (z :: _c)
+ = [x, z] :: [_d]
+
+WildcardsInPatternAndExprSig.hs:4:49: error:
+ Found type wildcard ‘_c’ standing for ‘t’
+ Where: ‘t’ is a rigid type variable bound by
+ the inferred type of bar :: Maybe [t] -> t -> [t]
+ at WildcardsInPatternAndExprSig.hs:4:1
+ To use the inferred type, enable PartialTypeSignatures
+ Relevant bindings include
+ x :: t (bound at WildcardsInPatternAndExprSig.hs:4:13)
+ bar :: Maybe [t] -> t -> [t]
+ (bound at WildcardsInPatternAndExprSig.hs:4:1)
+ In a pattern type signature: _c
+ In the pattern: z :: _c
+ In an equation for ‘bar’:
+ bar (Just ([x :: _a] :: _) :: Maybe [_b]) (z :: _c)
+ = [x, z] :: [_d]
+
+WildcardsInPatternAndExprSig.hs:4:66: error:
+ Found type wildcard ‘_d’ standing for ‘t’
+ Where: ‘t’ is a rigid type variable bound by
+ the inferred type of bar :: Maybe [t] -> t -> [t]
+ at WildcardsInPatternAndExprSig.hs:4:1
+ To use the inferred type, enable PartialTypeSignatures
+ Relevant bindings include
+ z :: t (bound at WildcardsInPatternAndExprSig.hs:4:44)
+ x :: t (bound at WildcardsInPatternAndExprSig.hs:4:13)
+ bar :: Maybe [t] -> t -> [t]
+ (bound at WildcardsInPatternAndExprSig.hs:4:1)
+ In an expression type signature: [_d]
+ In the expression: [x, z] :: [_d]
+ In an equation for ‘bar’:
+ bar (Just ([x :: _a] :: _) :: Maybe [_b]) (z :: _c)
+ = [x, z] :: [_d]
diff --git a/testsuite/tests/typecheck/should_compile/T10072.stderr b/testsuite/tests/typecheck/should_compile/T10072.stderr index 8e05ebda32..ba15398874 100644 --- a/testsuite/tests/typecheck/should_compile/T10072.stderr +++ b/testsuite/tests/typecheck/should_compile/T10072.stderr @@ -1,8 +1,8 @@ - -T10072.hs:3:31: error: - Found type wildcard ‘_’ standing for ‘w_’ - Where: ‘w_’ is a rigid type variable bound by - the RULE "map/empty" at T10072.hs:3:1 - To use the inferred type, enable PartialTypeSignatures - In a RULE for ‘f’: a -> _ - When checking the transformation rule "map/empty" +
+T10072.hs:3:31: error:
+ Found type wildcard ‘_’ standing for ‘b’
+ Where: ‘b’ is a rigid type variable bound by
+ the RULE "map/empty" at T10072.hs:3:1
+ To use the inferred type, enable PartialTypeSignatures
+ In a RULE for ‘f’: a -> _
+ When checking the transformation rule "map/empty"
diff --git a/testsuite/tests/typecheck/should_fail/tcfail198.stderr b/testsuite/tests/typecheck/should_fail/tcfail198.stderr index 76557906ba..ea764fc846 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail198.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail198.stderr @@ -1,13 +1,13 @@ - -tcfail198.hs:6:36: - Couldn't match expected type ‘a1’ with actual type ‘a’ - because type variable ‘a1’ would escape its scope - This (rigid, skolem) type variable is bound by - an expression type signature: a1 - at tcfail198.hs:6:36-41 - Relevant bindings include - xs :: [a] (bound at tcfail198.hs:6:21) - x :: a (bound at tcfail198.hs:6:19) - f3 :: [a] -> [a] (bound at tcfail198.hs:6:6) - In the expression: x :: a - In the second argument of ‘(++)’, namely ‘[x :: a]’ +
+tcfail198.hs:6:36: error:
+ Couldn't match expected type ‘a2’ with actual type ‘a1’
+ because type variable ‘a2’ would escape its scope
+ This (rigid, skolem) type variable is bound by
+ an expression type signature: a2
+ at tcfail198.hs:6:36-41
+ Relevant bindings include
+ xs :: [a1] (bound at tcfail198.hs:6:21)
+ x :: a1 (bound at tcfail198.hs:6:19)
+ f3 :: [a1] -> [a1] (bound at tcfail198.hs:6:6)
+ In the expression: x :: a
+ In the second argument of ‘(++)’, namely ‘[x :: a]’
|