diff options
author | Krzysztof Gogolewski <krzysztof.gogolewski@tweag.io> | 2020-02-03 21:17:11 +0100 |
---|---|---|
committer | Krzysztof Gogolewski <krzysztof.gogolewski@tweag.io> | 2020-02-12 23:58:52 +0100 |
commit | df08468113ab46832b7ac0a7311b608d1b418c4d (patch) | |
tree | de3a0ed40b58162976e4831625471b5702b2121f /testsuite/tests/partial-sigs | |
parent | 6c2585e0816cb49487fa6a2be5b8e3f191cf3438 (diff) | |
download | haskell-df08468113ab46832b7ac0a7311b608d1b418c4d.tar.gz |
Always display inferred variables using braces
We now always show "forall {a}. T" for inferred variables,
previously this was controlled by -fprint-explicit-foralls.
This implements part 1 of https://github.com/ghc-proposals/ghc-proposals/pull/179.
Part of GHC ticket #16320.
Furthermore, when printing a levity restriction error, we now display
the HsWrap of the expression. This lets users see the full elaboration with
-fprint-typechecker-elaboration (see also #17670)
Diffstat (limited to 'testsuite/tests/partial-sigs')
17 files changed, 199 insertions, 191 deletions
diff --git a/testsuite/tests/partial-sigs/should_compile/Defaulting2MROff.stderr b/testsuite/tests/partial-sigs/should_compile/Defaulting2MROff.stderr index 37ada9e6bc..4332d07a03 100644 --- a/testsuite/tests/partial-sigs/should_compile/Defaulting2MROff.stderr +++ b/testsuite/tests/partial-sigs/should_compile/Defaulting2MROff.stderr @@ -1,5 +1,5 @@ TYPE SIGNATURES - bravo :: forall _. Num _ => _ + bravo :: forall {_}. Num _ => _ Dependent modules: [] Dependent packages: [base-4.13.0.0, ghc-prim-0.6.1, integer-gmp-1.0.2.0] diff --git a/testsuite/tests/partial-sigs/should_compile/Defaulting2MROn.stderr b/testsuite/tests/partial-sigs/should_compile/Defaulting2MROn.stderr index 37ada9e6bc..4332d07a03 100644 --- a/testsuite/tests/partial-sigs/should_compile/Defaulting2MROn.stderr +++ b/testsuite/tests/partial-sigs/should_compile/Defaulting2MROn.stderr @@ -1,5 +1,5 @@ TYPE SIGNATURES - bravo :: forall _. Num _ => _ + bravo :: forall {_}. Num _ => _ Dependent modules: [] Dependent packages: [base-4.13.0.0, ghc-prim-0.6.1, integer-gmp-1.0.2.0] diff --git a/testsuite/tests/partial-sigs/should_compile/Either.stderr b/testsuite/tests/partial-sigs/should_compile/Either.stderr index d7a636413c..f5f54d209e 100644 --- a/testsuite/tests/partial-sigs/should_compile/Either.stderr +++ b/testsuite/tests/partial-sigs/should_compile/Either.stderr @@ -1,5 +1,5 @@ TYPE SIGNATURES - barry :: forall _. _ -> (Either [Char] _, Either [Char] _) + barry :: forall {_}. _ -> (Either [Char] _, Either [Char] _) Dependent modules: [] Dependent packages: [base-4.13.0.0, ghc-prim-0.6.1, integer-gmp-1.0.2.0] diff --git a/testsuite/tests/partial-sigs/should_compile/Every.stderr b/testsuite/tests/partial-sigs/should_compile/Every.stderr index 3e33dcbf48..d9f69686e1 100644 --- a/testsuite/tests/partial-sigs/should_compile/Every.stderr +++ b/testsuite/tests/partial-sigs/should_compile/Every.stderr @@ -1,5 +1,5 @@ TYPE SIGNATURES - every :: forall t. (t -> Bool) -> [t] -> Bool + every :: forall {t}. (t -> Bool) -> [t] -> Bool Dependent modules: [] Dependent packages: [base-4.13.0.0, ghc-prim-0.6.1, integer-gmp-1.0.2.0] diff --git a/testsuite/tests/partial-sigs/should_compile/EveryNamed.stderr b/testsuite/tests/partial-sigs/should_compile/EveryNamed.stderr index 3cbaff90ac..28c25b80b6 100644 --- a/testsuite/tests/partial-sigs/should_compile/EveryNamed.stderr +++ b/testsuite/tests/partial-sigs/should_compile/EveryNamed.stderr @@ -1,5 +1,5 @@ TYPE SIGNATURES - every :: forall _. (_ -> Bool) -> [_] -> Bool + every :: forall {_}. (_ -> Bool) -> [_] -> Bool Dependent modules: [] Dependent packages: [base-4.13.0.0, ghc-prim-0.6.1, integer-gmp-1.0.2.0] diff --git a/testsuite/tests/partial-sigs/should_compile/ExtraConstraints3.stderr b/testsuite/tests/partial-sigs/should_compile/ExtraConstraints3.stderr index 064c995300..3b94743dbb 100644 --- a/testsuite/tests/partial-sigs/should_compile/ExtraConstraints3.stderr +++ b/testsuite/tests/partial-sigs/should_compile/ExtraConstraints3.stderr @@ -1,231 +1,239 @@ TYPE SIGNATURES - !! :: forall a. [a] -> Int -> a - $ :: forall a b. (a -> b) -> a -> b - $! :: forall a b. (a -> b) -> a -> b + !! :: 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}. 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 (m :: * -> *) a 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 => (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 b a. (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 + forall {m :: * -> *} {a} {b}. Monad m => m a -> (a -> m b) -> m b + ^ :: forall {b} {a}. (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 (t :: * -> *) a. P.Foldable t => (a -> Bool) -> t a -> Bool - and :: forall (t :: * -> *). P.Foldable t => t Bool -> Bool + forall {t :: * -> *} {a}. + P.Foldable t => + (a -> Bool) -> t a -> Bool + and :: forall {t :: * -> *}. P.Foldable t => t Bool -> Bool any :: - forall (t :: * -> *) a. P.Foldable t => (a -> Bool) -> t a -> Bool + forall {t :: * -> *} {a}. + P.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. (RealFrac a, Integral b) => a -> b - compare :: forall a. Ord a => a -> a -> Ordering - concat :: forall (t :: * -> *) a. P.Foldable t => t [a] -> [a] + 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}. (RealFrac a, Integral b) => a -> b + compare :: forall {a}. Ord a => a -> a -> Ordering + concat :: forall {t :: * -> *} {a}. P.Foldable t => t [a] -> [a] concatMap :: - forall (t :: * -> *) a b. P.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 + forall {t :: * -> *} {a} {b}. + P.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. (P.Foldable t, Eq a) => 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. P.MonadFail 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. (RealFrac a, Integral b) => a -> b + forall {t :: * -> *} {a}. (P.Foldable t, Eq a) => 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}. P.MonadFail 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}. (RealFrac a, Integral b) => a -> b fmap :: - forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b + forall {f :: * -> *} {a} {b}. Functor f => (a -> b) -> f a -> f b foldl :: - forall (t :: * -> *) b a. + forall {t :: * -> *} {b} {a}. P.Foldable t => (b -> a -> b) -> b -> t a -> b foldl1 :: - forall (t :: * -> *) a. P.Foldable t => (a -> a -> a) -> t a -> a + forall {t :: * -> *} {a}. P.Foldable t => (a -> a -> a) -> t a -> a foldr :: - forall (t :: * -> *) a b. + forall {t :: * -> *} {a} {b}. P.Foldable t => (a -> b -> b) -> b -> t a -> b foldr1 :: - forall (t :: * -> *) a. P.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 + forall {t :: * -> *} {a}. P.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] + 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. P.Foldable t => t a -> Int + 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}. P.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] + 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 :: * -> *) (m :: * -> *) a b. + forall {t :: * -> *} {m :: * -> *} {a} {b}. (P.Traversable t, Monad m) => (a -> m b) -> t a -> m (t b) mapM_ :: - forall (t :: * -> *) (m :: * -> *) a b. + forall {t :: * -> *} {m :: * -> *} {a} {b}. (P.Foldable t, Monad m) => (a -> m b) -> t a -> m () - max :: forall a. Ord a => a -> a -> a - maxBound :: forall _. Bounded _ => _ + max :: forall {a}. Ord a => a -> a -> a + maxBound :: forall {_}. Bounded _ => _ maximum :: - forall (t :: * -> *) a. (P.Foldable t, Ord a) => t a -> a - maybe :: forall b a. b -> (a -> b) -> Maybe a -> b - min :: forall a. Ord a => a -> a -> a - minBound :: forall _. Bounded _ => _ + forall {t :: * -> *} {a}. (P.Foldable t, Ord a) => t a -> a + maybe :: forall {b} {a}. b -> (a -> b) -> Maybe a -> b + min :: forall {a}. Ord a => a -> a -> a + minBound :: forall {_}. Bounded _ => _ minimum :: - forall (t :: * -> *) a. (P.Foldable t, Ord a) => t a -> a - mod :: forall a. Integral a => a -> a -> a - negate :: forall a. Num a => a -> a + forall {t :: * -> *} {a}. (P.Foldable t, Ord a) => t a -> a + mod :: forall {a}. Integral a => a -> a -> a + negate :: forall {a}. Num a => a -> a not :: Bool -> Bool notElem :: - forall (t :: * -> *) a. (P.Foldable t, Eq a) => a -> t a -> Bool - null :: forall (t :: * -> *) a. P.Foldable t => t a -> Bool - odd :: forall a. Integral a => a -> Bool - or :: forall (t :: * -> *). P.Foldable t => t Bool -> Bool + forall {t :: * -> *} {a}. (P.Foldable t, Eq a) => a -> t a -> Bool + null :: forall {t :: * -> *} {a}. P.Foldable t => t a -> Bool + odd :: forall {a}. Integral a => a -> Bool + or :: forall {t :: * -> *}. P.Foldable t => t Bool -> Bool otherwise :: Bool - pi :: forall _. Floating _ => _ - pred :: forall a. Enum a => a -> a - print :: forall a. Show a => a -> IO () + pi :: forall {_}. Floating _ => _ + pred :: forall {a}. Enum a => a -> a + print :: forall {a}. Show a => a -> IO () product :: - forall (t :: * -> *) a. (P.Foldable t, Num a) => t a -> a + forall {t :: * -> *} {a}. (P.Foldable t, Num a) => t a -> a properFraction :: - forall a b. (RealFrac a, Integral b) => a -> (b, a) + forall {a} {b}. (RealFrac a, Integral b) => 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 + 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. (Real a, Fractional b) => 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. (RealFrac a, Integral b) => 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 + 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}. (Real a, Fractional b) => 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}. (RealFrac a, Integral b) => 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. + forall {t :: * -> *} {m :: * -> *} {a}. (P.Traversable t, Monad m) => t (m a) -> m (t a) sequence_ :: - forall (t :: * -> *) (m :: * -> *) a. + forall {t :: * -> *} {m :: * -> *} {a}. (P.Foldable t, Monad m) => t (m a) -> m () - show :: forall a. Show a => a -> String + show :: forall {a}. Show a => a -> String showChar :: Char -> ShowS - showList :: forall a. Show a => [a] -> 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. (P.Foldable t, Num a) => 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. (RealFrac a, Integral b) => a -> b - uncurry :: forall a b c. (a -> b -> c) -> (a, b) -> c - undefined :: forall _. _ + 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}. (P.Foldable t, Num a) => 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}. (RealFrac a, Integral b) => a -> b + uncurry :: forall {a} {b} {c}. (a -> b -> c) -> (a, b) -> c + undefined :: forall {_}. _ unlines :: [String] -> String - until :: forall a. (a -> Bool) -> (a -> a) -> a -> a + 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]) + 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] + 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] + forall {a} {b} {c} {d}. + (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d] || :: Bool -> Bool -> Bool Dependent modules: [] Dependent packages: [base-4.13.0.0, ghc-prim-0.6.1, diff --git a/testsuite/tests/partial-sigs/should_compile/Meltdown.stderr b/testsuite/tests/partial-sigs/should_compile/Meltdown.stderr index 025fa95a42..6380befcc2 100644 --- a/testsuite/tests/partial-sigs/should_compile/Meltdown.stderr +++ b/testsuite/tests/partial-sigs/should_compile/Meltdown.stderr @@ -1,7 +1,7 @@ TYPE SIGNATURES isMeltdown :: forall param1 param2. NukeMonad param1 param2 Bool unlessMeltdown :: - forall param1 param2. + forall {param1} {param2}. NukeMonad param1 param2 () -> NukeMonad param1 param2 () TYPE CONSTRUCTORS data type NukeMonad{3} :: * -> * -> * -> * diff --git a/testsuite/tests/partial-sigs/should_compile/PatBind.stderr b/testsuite/tests/partial-sigs/should_compile/PatBind.stderr index de26dc9d80..1f71b4f434 100644 --- a/testsuite/tests/partial-sigs/should_compile/PatBind.stderr +++ b/testsuite/tests/partial-sigs/should_compile/PatBind.stderr @@ -1,5 +1,5 @@ TYPE SIGNATURES - foo :: forall a. a -> a + foo :: forall {a}. a -> a Dependent modules: [] Dependent packages: [base-4.13.0.0, ghc-prim-0.6.1, integer-gmp-1.0.2.0] diff --git a/testsuite/tests/partial-sigs/should_compile/ShowNamed.stderr b/testsuite/tests/partial-sigs/should_compile/ShowNamed.stderr index 86054ed585..8ca152fd92 100644 --- a/testsuite/tests/partial-sigs/should_compile/ShowNamed.stderr +++ b/testsuite/tests/partial-sigs/should_compile/ShowNamed.stderr @@ -1,5 +1,5 @@ TYPE SIGNATURES - showTwo :: forall a. Show a => a -> String + showTwo :: forall {a}. Show a => a -> String Dependent modules: [] Dependent packages: [base-4.13.0.0, ghc-prim-0.6.1, integer-gmp-1.0.2.0] diff --git a/testsuite/tests/partial-sigs/should_compile/SimpleGen.stderr b/testsuite/tests/partial-sigs/should_compile/SimpleGen.stderr index 34903a93cf..49e98e3b0d 100644 --- a/testsuite/tests/partial-sigs/should_compile/SimpleGen.stderr +++ b/testsuite/tests/partial-sigs/should_compile/SimpleGen.stderr @@ -1,5 +1,5 @@ TYPE SIGNATURES - bar :: forall _. _ -> Bool + bar :: forall {_}. _ -> Bool Dependent modules: [] Dependent packages: [base-4.13.0.0, ghc-prim-0.6.1, integer-gmp-1.0.2.0] diff --git a/testsuite/tests/partial-sigs/should_compile/SkipMany.stderr b/testsuite/tests/partial-sigs/should_compile/SkipMany.stderr index da0aa8ed9e..4a205f9ca5 100644 --- a/testsuite/tests/partial-sigs/should_compile/SkipMany.stderr +++ b/testsuite/tests/partial-sigs/should_compile/SkipMany.stderr @@ -1,6 +1,6 @@ TYPE SIGNATURES skipMany :: - forall tok st a. GenParser tok st a -> GenParser tok st () + forall {tok} {st} {a}. GenParser tok st a -> GenParser tok st () skipMany' :: forall tok st a. GenParser tok st a -> GenParser tok st () TYPE CONSTRUCTORS diff --git a/testsuite/tests/partial-sigs/should_compile/Uncurry.stderr b/testsuite/tests/partial-sigs/should_compile/Uncurry.stderr index 68bec65094..0499a2eb93 100644 --- a/testsuite/tests/partial-sigs/should_compile/Uncurry.stderr +++ b/testsuite/tests/partial-sigs/should_compile/Uncurry.stderr @@ -1,5 +1,5 @@ TYPE SIGNATURES - unc :: forall _1 _2 _3. (_1 -> _2 -> _3) -> (_1, _2) -> _3 + unc :: forall {_1} {_2} {_3}. (_1 -> _2 -> _3) -> (_1, _2) -> _3 Dependent modules: [] Dependent packages: [base-4.13.0.0, ghc-prim-0.6.1, integer-gmp-1.0.2.0] diff --git a/testsuite/tests/partial-sigs/should_compile/UncurryNamed.stderr b/testsuite/tests/partial-sigs/should_compile/UncurryNamed.stderr index 9d5f8e20be..62ae68aef0 100644 --- a/testsuite/tests/partial-sigs/should_compile/UncurryNamed.stderr +++ b/testsuite/tests/partial-sigs/should_compile/UncurryNamed.stderr @@ -1,5 +1,5 @@ TYPE SIGNATURES - unc :: forall a b _. (a -> b -> _) -> (a, b) -> _ + unc :: forall {a} {b} {_}. (a -> b -> _) -> (a, b) -> _ Dependent modules: [] Dependent packages: [base-4.13.0.0, ghc-prim-0.6.1, integer-gmp-1.0.2.0] diff --git a/testsuite/tests/partial-sigs/should_compile/WarningWildcardInstantiations.stderr b/testsuite/tests/partial-sigs/should_compile/WarningWildcardInstantiations.stderr index 4dbb77b300..8cfb1f2fe0 100644 --- a/testsuite/tests/partial-sigs/should_compile/WarningWildcardInstantiations.stderr +++ b/testsuite/tests/partial-sigs/should_compile/WarningWildcardInstantiations.stderr @@ -1,6 +1,6 @@ TYPE SIGNATURES - bar :: forall t _. t -> (t -> _) -> _ - foo :: forall a. (Show a, Enum a) => a -> String + bar :: forall {t} {_}. t -> (t -> _) -> _ + foo :: forall {a}. (Show a, Enum a) => a -> String Dependent modules: [] Dependent packages: [base-4.13.0.0, ghc-prim-0.6.1, integer-gmp-1.0.2.0] diff --git a/testsuite/tests/partial-sigs/should_fail/NamedExtraConstraintsWildcard.stderr b/testsuite/tests/partial-sigs/should_fail/NamedExtraConstraintsWildcard.stderr index c573747c02..84d61eda91 100644 --- a/testsuite/tests/partial-sigs/should_fail/NamedExtraConstraintsWildcard.stderr +++ b/testsuite/tests/partial-sigs/should_fail/NamedExtraConstraintsWildcard.stderr @@ -3,9 +3,9 @@ NamedExtraConstraintsWildcard.hs:5:1: error: • Could not deduce: _0 from the context: (Eq a, _) bound by the inferred type for ‘foo’: - forall a (_ :: Constraint). (Eq a, _) => a -> a + forall a {_ :: Constraint}. (Eq a, _) => a -> a at NamedExtraConstraintsWildcard.hs:5:1-15 • In the ambiguity check for the inferred type for ‘foo’ To defer the ambiguity check to use sites, enable AllowAmbiguousTypes When checking the inferred type - foo :: forall a (_ :: Constraint). (Eq a, _) => a -> a + foo :: forall a {_ :: Constraint}. (Eq a, _) => a -> a diff --git a/testsuite/tests/partial-sigs/should_fail/NamedWildcardsNotInMonotype.stderr b/testsuite/tests/partial-sigs/should_fail/NamedWildcardsNotInMonotype.stderr index 89b71e5959..6a1d0edbb4 100644 --- a/testsuite/tests/partial-sigs/should_fail/NamedWildcardsNotInMonotype.stderr +++ b/testsuite/tests/partial-sigs/should_fail/NamedWildcardsNotInMonotype.stderr @@ -3,10 +3,10 @@ NamedWildcardsNotInMonotype.hs:5:1: error: • Could not deduce (Eq _0) from the context: (Show a, Eq _, Eq a) bound by the inferred type for ‘foo’: - forall a _. (Show a, Eq _, Eq a) => a -> a -> String + forall {a} {_}. (Show a, Eq _, Eq a) => a -> a -> String at NamedWildcardsNotInMonotype.hs:5:1-33 The type variable ‘_0’ is ambiguous • In the ambiguity check for the inferred type for ‘foo’ To defer the ambiguity check to use sites, enable AllowAmbiguousTypes When checking the inferred type - foo :: forall a _. (Show a, Eq _, Eq a) => a -> a -> String + foo :: forall {a} {_}. (Show a, Eq _, Eq a) => a -> a -> String diff --git a/testsuite/tests/partial-sigs/should_fail/T14584a.stderr b/testsuite/tests/partial-sigs/should_fail/T14584a.stderr index 5687dcec51..8c98b76ae2 100644 --- a/testsuite/tests/partial-sigs/should_fail/T14584a.stderr +++ b/testsuite/tests/partial-sigs/should_fail/T14584a.stderr @@ -14,7 +14,7 @@ T14584a.hs:12:14: warning: [-Wpartial-type-signatures (in -Wdefault)] • Found type wildcard ‘_’ standing for ‘m -> m’ Where: ‘m’, ‘k’ are rigid type variables bound by the type signature for: - f :: forall k2 (m :: k2). () + f :: forall {k2} (m :: k2). () at T14584a.hs:11:1-17 • In an expression type signature: _ In the expression: id @m :: _ |