Print singleton consraints without parens
authorSimon Peyton Jones <simonpj@microsoft.com>
Mon, 5 Jan 2015 12:56:46 +0000 (12:56 +0000)
committerSimon Peyton Jones <simonpj@microsoft.com>
Tue, 6 Jan 2015 14:18:53 +0000 (14:18 +0000)
The main change is in TypeRep.pprTheta, so we print
       Eq a
for a singleton, but
      (Eq a, Show a)
for multiple constraints.

There are lots of trivial knock-on changes to error messages

55 files changed:
compiler/typecheck/TcDeriv.hs
compiler/typecheck/TcErrors.hs
compiler/types/TypeRep.hs
testsuite/tests/deriving/should_fail/T5287.stderr
testsuite/tests/deriving/should_fail/drvfail-functor2.stderr
testsuite/tests/gadt/gadt-escape1.stderr
testsuite/tests/gadt/gadt13.stderr
testsuite/tests/gadt/gadt21.stderr
testsuite/tests/gadt/gadt7.stderr
testsuite/tests/indexed-types/should_compile/Simple14.stderr
testsuite/tests/indexed-types/should_compile/T3208b.stderr
testsuite/tests/indexed-types/should_fail/T2664.stderr
testsuite/tests/indexed-types/should_fail/T3440.stderr
testsuite/tests/indexed-types/should_fail/T4093a.stderr
testsuite/tests/indexed-types/should_fail/T4093b.stderr
testsuite/tests/indexed-types/should_fail/T8155.stderr
testsuite/tests/module/mod47.stderr
testsuite/tests/partial-sigs/should_compile/WarningWildcardInstantiations.stderr
testsuite/tests/partial-sigs/should_fail/ExtraConstraintsWildcardNotEnabled.stderr
testsuite/tests/partial-sigs/should_fail/InstantiatedNamedWildcardsInConstraints.stderr
testsuite/tests/partial-sigs/should_fail/WildcardInstantiations.stderr
testsuite/tests/polykinds/T7230.stderr
testsuite/tests/polykinds/T7438.stderr
testsuite/tests/polykinds/T7594.stderr
testsuite/tests/polykinds/T8566.stderr
testsuite/tests/polykinds/T9222.stderr
testsuite/tests/typecheck/should_compile/T7220a.stderr
testsuite/tests/typecheck/should_compile/tc168.stderr
testsuite/tests/typecheck/should_fail/FailDueToGivenOverlapping.stderr
testsuite/tests/typecheck/should_fail/IPFail.stderr
testsuite/tests/typecheck/should_fail/T1897a.stderr
testsuite/tests/typecheck/should_fail/T5300.stderr
testsuite/tests/typecheck/should_fail/T5853.stderr
testsuite/tests/typecheck/should_fail/T7279.stderr
testsuite/tests/typecheck/should_fail/T7525.stderr
testsuite/tests/typecheck/should_fail/T7857.stderr
testsuite/tests/typecheck/should_fail/T8912.stderr
testsuite/tests/typecheck/should_fail/T9109.stderr
testsuite/tests/typecheck/should_fail/tcfail034.stderr
testsuite/tests/typecheck/should_fail/tcfail041.stderr
testsuite/tests/typecheck/should_fail/tcfail042.stderr
testsuite/tests/typecheck/should_fail/tcfail067.stderr
testsuite/tests/typecheck/should_fail/tcfail072.stderr
testsuite/tests/typecheck/should_fail/tcfail080.stderr
testsuite/tests/typecheck/should_fail/tcfail097.stderr
testsuite/tests/typecheck/should_fail/tcfail098.stderr
testsuite/tests/typecheck/should_fail/tcfail102.stderr
testsuite/tests/typecheck/should_fail/tcfail108.stderr
testsuite/tests/typecheck/should_fail/tcfail130.stderr
testsuite/tests/typecheck/should_fail/tcfail142.stderr
testsuite/tests/typecheck/should_fail/tcfail181.stderr
testsuite/tests/typecheck/should_fail/tcfail208.stderr
testsuite/tests/typecheck/should_fail/tcfail211.stderr
testsuite/tests/typecheck/should_fail/tcfail213.stderr
testsuite/tests/typecheck/should_fail/tcfail214.stderr

index 8b7af86..960b03f 100644 (file)
@@ -1396,7 +1396,7 @@ cond_functorOK allowFunctions (_, rep_tc, _)
 
   | not (null bad_stupid_theta)
   = NotValid (ptext (sLit "Data type") <+> quotes (ppr rep_tc)
-              <+> ptext (sLit "must not have a class context") <+> pprTheta bad_stupid_theta)
+              <+> ptext (sLit "must not have a class context:") <+> pprTheta bad_stupid_theta)
 
   | otherwise
   = allValid (map check_con data_cons)
index 44fbadb..23cc048 100644 (file)
@@ -891,7 +891,7 @@ mkTyVarEqErr dflags ctxt extra ct oriented tv1 ty2
              tclvl_extra
                 = nest 2 $
                   sep [ quotes (ppr tv1) <+> ptext (sLit "is untouchable")
-                      , nest 2 $ ptext (sLit "inside the constraints") <+> pprEvVarTheta given
+                      , nest 2 $ ptext (sLit "inside the constraints:") <+> pprEvVarTheta given
                       , nest 2 $ ptext (sLit "bound by") <+> ppr skol_info
                       , nest 2 $ ptext (sLit "at") <+> ppr (tcl_loc env) ]
              tv_extra = extraTyVarInfo ctxt tv1 ty2
@@ -962,15 +962,15 @@ misMatchOrCND ctxt ct oriented ty1 ty2
 
 couldNotDeduce :: [UserGiven] -> (ThetaType, CtOrigin) -> SDoc
 couldNotDeduce givens (wanteds, orig)
-  = vcat [ addArising orig (ptext (sLit "Could not deduce") <+> pprTheta wanteds)
+  = vcat [ addArising orig (ptext (sLit "Could not deduce:") <+> pprTheta wanteds)
          , vcat (pp_givens givens)]
 
 pp_givens :: [UserGiven] -> [SDoc]
 pp_givens givens
    = case givens of
          []     -> []
-         (g:gs) ->      ppr_given (ptext (sLit "from the context")) g
-                 : map (ppr_given (ptext (sLit "or from"))) gs
+         (g:gs) ->      ppr_given (ptext (sLit "from the context:")) g
+                 : map (ppr_given (ptext (sLit "or from:"))) gs
     where
        ppr_given herald (gs, skol_info, _, loc)
            = hang (herald <+> pprEvVarTheta gs)
index e4982b2..03faf50 100644 (file)
@@ -525,7 +525,7 @@ pprClassPred clas tys = pprTypeApp (classTyCon clas) tys
 
 ------------
 pprTheta :: ThetaType -> SDoc
--- pprTheta [pred] = pprPred pred        -- I'm in two minds about this
+pprTheta [pred] = ppr_type TopPrec pred        -- I'm in two minds about this
 pprTheta theta  = parens (sep (punctuate comma (map (ppr_type TopPrec) theta)))
 
 pprThetaArrowTy :: ThetaType -> SDoc
index 0c068e0..529751c 100644 (file)
@@ -1,7 +1,7 @@
 
 T5287.hs:6:10:
     Could not deduce (A a oops0)
-    from the context (A a oops)
+    from the context: A a oops
       bound by an instance declaration: A a oops => Read (D a)
       at T5287.hs:6:10-31
     The type variable ‘oops0’ is ambiguous
index ab7812a..e0aa346 100644 (file)
@@ -19,7 +19,7 @@ drvfail-functor2.hs:15:14:
 
 drvfail-functor2.hs:20:14:
     Can't make a derived instance of ‘Functor StupidConstraint’:
-      Data type ‘StupidConstraint’ must not have a class context (Eq a)
+      Data type ‘StupidConstraint’ must not have a class context: Eq a
     In the data declaration for ‘StupidConstraint’
 
 drvfail-functor2.hs:26:14:
index a98e273..a8df3a5 100644 (file)
@@ -1,17 +1,17 @@
-\r
-gadt-escape1.hs:19:58:\r
-    Couldn't match type ‘t’ with ‘ExpGADT Int’\r
-      ‘t’ is untouchable\r
-        inside the constraints (t1 ~ Int)\r
-        bound by a pattern with constructor: ExpInt :: Int -> ExpGADT Int,\r
-                 in a case alternative\r
-        at gadt-escape1.hs:19:43-50\r
-      ‘t’ is a rigid type variable bound by\r
-          the inferred type of weird1 :: t at gadt-escape1.hs:19:1\r
-    Possible fix: add a type signature for ‘weird1’\r
-    Expected type: t\r
-      Actual type: ExpGADT t1\r
-    Relevant bindings include\r
-      weird1 :: t (bound at gadt-escape1.hs:19:1)\r
-    In the expression: a\r
-    In a case alternative: Hidden (ExpInt _) a -> a\r
+
+gadt-escape1.hs:19:58:
+    Couldn't match type ‘t’ with ‘ExpGADT Int’
+      ‘t’ is untouchable
+        inside the constraints: t1 ~ Int
+        bound by a pattern with constructor: ExpInt :: Int -> ExpGADT Int,
+                 in a case alternative
+        at gadt-escape1.hs:19:43-50
+      ‘t’ is a rigid type variable bound by
+          the inferred type of weird1 :: t at gadt-escape1.hs:19:1
+    Possible fix: add a type signature for ‘weird1’
+    Expected type: t
+      Actual type: ExpGADT t1
+    Relevant bindings include
+      weird1 :: t (bound at gadt-escape1.hs:19:1)
+    In the expression: a
+    In a case alternative: Hidden (ExpInt _) a -> a
index c8b7259..db3fb99 100644 (file)
@@ -1,16 +1,16 @@
-\r
-gadt13.hs:15:13:\r
-    Couldn't match expected type ‘t’\r
-                with actual type ‘String -> [Char]’\r
-      ‘t’ is untouchable\r
-        inside the constraints (t1 ~ Int)\r
-        bound by a pattern with constructor: I :: Int -> Term Int,\r
-                 in an equation for ‘shw’\r
-        at gadt13.hs:15:6-8\r
-      ‘t’ is a rigid type variable bound by\r
-          the inferred type of shw :: Term t1 -> t at gadt13.hs:15:1\r
-    Possible fix: add a type signature for ‘shw’\r
-    Relevant bindings include\r
-      shw :: Term t1 -> t (bound at gadt13.hs:15:1)\r
-    In the expression: ("I " ++) . shows t\r
-    In an equation for ‘shw’: shw (I t) = ("I " ++) . shows t\r
+
+gadt13.hs:15:13:
+    Couldn't match expected type ‘t’
+                with actual type ‘String -> [Char]’
+      ‘t’ is untouchable
+        inside the constraints: t1 ~ Int
+        bound by a pattern with constructor: I :: Int -> Term Int,
+                 in an equation for ‘shw’
+        at gadt13.hs:15:6-8
+      ‘t’ is a rigid type variable bound by
+          the inferred type of shw :: Term t1 -> t at gadt13.hs:15:1
+    Possible fix: add a type signature for ‘shw’
+    Relevant bindings include
+      shw :: Term t1 -> t (bound at gadt13.hs:15:1)
+    In the expression: ("I " ++) . shows t
+    In an equation for ‘shw’: shw (I t) = ("I " ++) . shows t
index 878abe2..7259672 100644 (file)
@@ -1,14 +1,14 @@
-\r
-gadt21.hs:21:60:\r
-    Could not deduce (Ord a1) arising from a use of ‘f’\r
-    from the context (a ~ Set a1)\r
-      bound by a pattern with constructor:\r
-                 TypeSet :: forall a. Type a -> Type (Set a),\r
-               in an equation for ‘withOrdDynExpr’\r
-      at gadt21.hs:21:35-43\r
-    Possible fix:\r
-      add (Ord a1) to the context of the data constructor ‘TypeSet’\r
-    In the first argument of ‘Just’, namely ‘(f e)’\r
-    In the expression: Just (f e)\r
-    In an equation for ‘withOrdDynExpr’:\r
-        withOrdDynExpr (DynExpr e@(Const (TypeSet _) _)) f = Just (f e)\r
+
+gadt21.hs:21:60:
+    Could not deduce (Ord a1) arising from a use of ‘f’
+    from the context: a ~ Set a1
+      bound by a pattern with constructor:
+                 TypeSet :: forall a. Type a -> Type (Set a),
+               in an equation for ‘withOrdDynExpr’
+      at gadt21.hs:21:35-43
+    Possible fix:
+      add (Ord a1) to the context of the data constructor ‘TypeSet’
+    In the first argument of ‘Just’, namely ‘(f e)’
+    In the expression: Just (f e)
+    In an equation for ‘withOrdDynExpr’:
+        withOrdDynExpr (DynExpr e@(Const (TypeSet _) _)) f = Just (f e)
index 2721e99..603cf5b 100644 (file)
@@ -1,19 +1,19 @@
-\r
-gadt7.hs:16:38:\r
-    Couldn't match expected type ‘t’ with actual type ‘t1’\r
-      ‘t1’ is untouchable\r
-        inside the constraints (t2 ~ Int)\r
-        bound by a pattern with constructor: K :: T Int,\r
-                 in a case alternative\r
-        at gadt7.hs:16:33\r
-      ‘t1’ is a rigid type variable bound by\r
-           the inferred type of i1b :: T t2 -> t1 -> t at gadt7.hs:16:1\r
-      ‘t’ is a rigid type variable bound by\r
-          the inferred type of i1b :: T t2 -> t1 -> t at gadt7.hs:16:1\r
-    Possible fix: add a type signature for ‘i1b’\r
-    Relevant bindings include\r
-      y1 :: t1 (bound at gadt7.hs:16:16)\r
-      y :: t1 (bound at gadt7.hs:16:7)\r
-      i1b :: T t2 -> t1 -> t (bound at gadt7.hs:16:1)\r
-    In the expression: y1\r
-    In a case alternative: K -> y1\r
+
+gadt7.hs:16:38:
+    Couldn't match expected type ‘t’ with actual type ‘t1’
+      ‘t1’ is untouchable
+        inside the constraints: t2 ~ Int
+        bound by a pattern with constructor: K :: T Int,
+                 in a case alternative
+        at gadt7.hs:16:33
+      ‘t1’ is a rigid type variable bound by
+           the inferred type of i1b :: T t2 -> t1 -> t at gadt7.hs:16:1
+      ‘t’ is a rigid type variable bound by
+          the inferred type of i1b :: T t2 -> t1 -> t at gadt7.hs:16:1
+    Possible fix: add a type signature for ‘i1b’
+    Relevant bindings include
+      y1 :: t1 (bound at gadt7.hs:16:16)
+      y :: t1 (bound at gadt7.hs:16:7)
+      i1b :: T t2 -> t1 -> t (bound at gadt7.hs:16:1)
+    In the expression: y1
+    In a case alternative: K -> y1
index d3531ac..8610132 100644 (file)
@@ -2,7 +2,7 @@
 Simple14.hs:8:8:
     Couldn't match type ‘z0’ with ‘z’
       ‘z0’ is untouchable
-        inside the constraints (x ~ y)
+        inside the constraints: x ~ y
         bound by the type signature for: eqE :: (x ~ y) => EQ_ z0 z0
         at Simple14.hs:8:8-39
       ‘z’ is a rigid type variable bound by
index b476088..b5014d0 100644 (file)
@@ -1,7 +1,7 @@
 
 T3208b.hs:15:10:
-    Could not deduce (STerm o0 ~ OTerm o0)
-    from the context (OTerm a ~ STerm a, OBJECT a, SUBST a)
+    Could not deduce: STerm o0 ~ OTerm o0
+    from the context: (OTerm a ~ STerm a, OBJECT a, SUBST a)
       bound by the type signature for:
                fce' :: (OTerm a ~ STerm a, OBJECT a, SUBST a) => a -> c
       at T3208b.hs:14:9-56
@@ -10,8 +10,8 @@ T3208b.hs:15:10:
     In an equation for ‘fce'’: fce' f = fce (apply f)
 
 T3208b.hs:15:15:
-    Could not deduce (OTerm o0 ~ OTerm a)
-    from the context (OTerm a ~ STerm a, OBJECT a, SUBST a)
+    Could not deduce: OTerm o0 ~ OTerm a
+    from the context: (OTerm a ~ STerm a, OBJECT a, SUBST a)
       bound by the type signature for:
                fce' :: (OTerm a ~ STerm a, OBJECT a, SUBST a) => a -> c
       at T3208b.hs:14:9-56
index 8d000ca..43a38de 100644 (file)
@@ -1,21 +1,21 @@
-\r
-T2664.hs:31:52:\r
-    Could not deduce (a ~ b)\r
-    from the context ((a :*: b) ~ Dual c, c ~ Dual (a :*: b))\r
-      bound by the type signature for:\r
-               newPChan :: ((a :*: b) ~ Dual c, c ~ Dual (a :*: b)) =>\r
-                           IO (PChan (a :*: b), PChan c)\r
-      at T2664.hs:23:5-12\r
-      ‘a’ is a rigid type variable bound by\r
-          the instance declaration at T2664.hs:22:10\r
-      ‘b’ is a rigid type variable bound by\r
-          the instance declaration at T2664.hs:22:10\r
-    Expected type: Dual (Dual a)\r
-      Actual type: b\r
-    Relevant bindings include\r
-      v :: MVar (Either (PChan a) (PChan b)) (bound at T2664.hs:24:9)\r
-      newPChan :: IO (PChan (a :*: b), PChan c) (bound at T2664.hs:23:5)\r
-    In the third argument of ‘pchoose’, namely ‘newPChan’\r
-    In the first argument of ‘E’, namely ‘(pchoose Right v newPChan)’\r
-    In the expression:\r
-      E (pchoose Right v newPChan) (pchoose Left v newPChan)\r
+
+T2664.hs:31:52:
+    Could not deduce: a ~ b
+    from the context: ((a :*: b) ~ Dual c, c ~ Dual (a :*: b))
+      bound by the type signature for:
+               newPChan :: ((a :*: b) ~ Dual c, c ~ Dual (a :*: b)) =>
+                           IO (PChan (a :*: b), PChan c)
+      at T2664.hs:23:5-12
+      ‘a’ is a rigid type variable bound by
+          the instance declaration at T2664.hs:22:10
+      ‘b’ is a rigid type variable bound by
+          the instance declaration at T2664.hs:22:10
+    Expected type: Dual (Dual a)
+      Actual type: b
+    Relevant bindings include
+      v :: MVar (Either (PChan a) (PChan b)) (bound at T2664.hs:24:9)
+      newPChan :: IO (PChan (a :*: b), PChan c) (bound at T2664.hs:23:5)
+    In the third argument of ‘pchoose’, namely ‘newPChan’
+    In the first argument of ‘E’, namely ‘(pchoose Right v newPChan)’
+    In the expression:
+      E (pchoose Right v newPChan) (pchoose Left v newPChan)
index 1234d75..5deb1e8 100644 (file)
@@ -1,22 +1,22 @@
-\r
-T3440.hs:11:22:\r
-    Could not deduce (a1 ~ a)\r
-    from the context (Fam a ~ Fam a1)\r
-      bound by a pattern with constructor:\r
-                 GADT :: forall a. a -> Fam a -> GADT (Fam a),\r
-               in an equation for ‘unwrap’\r
-      at T3440.hs:11:9-16\r
-      ‘a1’ is a rigid type variable bound by\r
-           a pattern with constructor:\r
-             GADT :: forall a. a -> Fam a -> GADT (Fam a),\r
-           in an equation for ‘unwrap’\r
-           at T3440.hs:11:9\r
-      ‘a’ is a rigid type variable bound by\r
-          the type signature for: unwrap :: GADT (Fam a) -> (a, Fam a)\r
-          at T3440.hs:10:11\r
-    Relevant bindings include\r
-      y :: Fam a1 (bound at T3440.hs:11:16)\r
-      x :: a1 (bound at T3440.hs:11:14)\r
-      unwrap :: GADT (Fam a) -> (a, Fam a) (bound at T3440.hs:11:1)\r
-    In the expression: x\r
-    In the expression: (x, y)\r
+
+T3440.hs:11:22:
+    Could not deduce: a1 ~ a
+    from the context: Fam a ~ Fam a1
+      bound by a pattern with constructor:
+                 GADT :: forall a. a -> Fam a -> GADT (Fam a),
+               in an equation for ‘unwrap’
+      at T3440.hs:11:9-16
+      ‘a1’ is a rigid type variable bound by
+           a pattern with constructor:
+             GADT :: forall a. a -> Fam a -> GADT (Fam a),
+           in an equation for ‘unwrap’
+           at T3440.hs:11:9
+      ‘a’ is a rigid type variable bound by
+          the type signature for: unwrap :: GADT (Fam a) -> (a, Fam a)
+          at T3440.hs:10:11
+    Relevant bindings include
+      y :: Fam a1 (bound at T3440.hs:11:16)
+      x :: a1 (bound at T3440.hs:11:14)
+      unwrap :: GADT (Fam a) -> (a, Fam a) (bound at T3440.hs:11:1)
+    In the expression: x
+    In the expression: (x, y)
index 1fa4905..0228a88 100644 (file)
@@ -1,14 +1,14 @@
-\r
-T4093a.hs:7:9:\r
-    Could not deduce (Foo e0 ~ Maybe e)\r
-    from the context (Foo e ~ Maybe e)\r
-      bound by the type signature for: hang :: (Foo e ~ Maybe e) => Foo e\r
-      at T4093a.hs:7:9-34\r
-    The type variable ‘e0’ is ambiguous\r
-    Expected type: Foo e\r
-      Actual type: Foo e0\r
-    In the ambiguity check for the type signature for ‘hang’:\r
-      hang :: forall e. (Foo e ~ Maybe e) => Foo e\r
-    To defer the ambiguity check to use sites, enable AllowAmbiguousTypes\r
-    In the type signature for ‘hang’:\r
-      hang :: (Foo e ~ Maybe e) => Foo e\r
+
+T4093a.hs:7:9:
+    Could not deduce: Foo e0 ~ Maybe e
+    from the context: Foo e ~ Maybe e
+      bound by the type signature for: hang :: (Foo e ~ Maybe e) => Foo e
+      at T4093a.hs:7:9-34
+    The type variable ‘e0’ is ambiguous
+    Expected type: Foo e
+      Actual type: Foo e0
+    In the ambiguity check for the type signature for ‘hang’:
+      hang :: forall e. (Foo e ~ Maybe e) => Foo e
+    To defer the ambiguity check to use sites, enable AllowAmbiguousTypes
+    In the type signature for ‘hang’:
+      hang :: (Foo e ~ Maybe e) => Foo e
index 9d749d1..802757d 100644 (file)
@@ -1,8 +1,8 @@
 
 T4093b.hs:31:13:
-    Could not deduce (e ~ C)
-    from the context (EitherCO e (A C O n) (A O O n) ~ A e O n,
-                      EitherCO x (A C C n) (A C O n) ~ A C x n)
+    Could not deduce: e ~ C
+    from the context: (EitherCO e (A C O n) (A O O n) ~ A e O n,
+                       EitherCO x (A C C n) (A C O n) ~ A C x n)
       bound by the type signature for:
                blockToNodeList :: (EitherCO e (A C O n) (A O O n) ~ A e O n,
                                    EitherCO x (A C C n) (A C O n) ~ A C x n) =>
index fb0ceb4..2d68242 100644 (file)
@@ -2,7 +2,7 @@
 T8155.hs:26:14:
     Could not deduce (Integral (BoundsOf (a -> a)))
       arising from a use of ‘buildV’
-    from the context (Num a)
+    from the context: Num a
       bound by the instance declaration at T8155.hs:25:10-32
     In the expression: buildV
     In an equation for ‘build'’: build' = buildV
index 98bfdab..6df1a6b 100644 (file)
@@ -2,7 +2,7 @@
 mod47.hs:6:10:
     Could not deduce (Num a)
       arising from the superclasses of an instance declaration
-    from the context (Eq a, Enum a)
+    from the context: (Eq a, Enum a)
       bound by the instance declaration at mod47.hs:6:10-34
     Possible fix:
       add (Num a) to the context of the instance declaration
index af573c5..8e0fa17 100644 (file)
@@ -7,7 +7,6 @@ Dependent modules: []
 Dependent packages: [base-4.8.0.0, ghc-prim-0.3.1.0,
                      integer-gmp-1.0.0.0]
 
-
 WarningWildcardInstantiations.hs:5:14: Warning:
     Found hole ‘_a’ with type: w_a
     Where: ‘w_a’ is a rigid type variable bound by
@@ -16,7 +15,7 @@ WarningWildcardInstantiations.hs:5:14: Warning:
     In the type signature for ‘foo’: (Show _a, _) => _a -> _
 
 WarningWildcardInstantiations.hs:5:18: Warning:
-    Found hole ‘_’ with inferred constraints: (Enum w_a)
+    Found hole ‘_’ with inferred constraints: Enum w_a
     In the type signature for ‘foo’: (Show _a, _) => _a -> _
 
 WarningWildcardInstantiations.hs:5:30: Warning:
@@ -40,7 +39,7 @@ WarningWildcardInstantiations.hs:8:13: Warning:
                  at WarningWildcardInstantiations.hs:9:1
     In the type signature for ‘bar’: _ -> _ -> _
 
-  WarningWildcardInstantiations.hs:8:18: Warning:
+WarningWildcardInstantiations.hs:8:18: Warning:
     Found hole ‘_’ with type: w_1
     Where: ‘w_1’ is a rigid type variable bound by
                  the inferred type of bar :: w_ -> (w_ -> w_1) -> w_1
index c1007c2..6483912 100644 (file)
@@ -1,5 +1,5 @@
 
 ExtraConstraintsWildcardNotEnabled.hs:4:10:
-    Found hole ‘_’ with inferred constraints: (Show a)
+    Found hole ‘_’ with inferred constraints: Show a
     To use the inferred type, enable PartialTypeSignatures
     In the type signature for ‘show'’: _ => a -> String
index 4a80c48..cca986f 100644 (file)
@@ -8,6 +8,6 @@ InstantiatedNamedWildcardsInConstraints.hs:4:14:
     In the type signature for ‘foo’: (Enum _a, _) => _a -> (String, b)
 
 InstantiatedNamedWildcardsInConstraints.hs:4:18:
-    Found hole ‘_’ with inferred constraints: (Show b)
+    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)
index 5701bfd..29f700b 100644 (file)
@@ -8,7 +8,7 @@ WildcardInstantiations.hs:5:14:
     In the type signature for ‘foo’: (Show _a, _) => _a -> _
 
 WildcardInstantiations.hs:5:18:
-    Found hole ‘_’ with inferred constraints: (Enum w_a)
+    Found hole ‘_’ with inferred constraints: Enum w_a
     To use the inferred type, enable PartialTypeSignatures
     In the type signature for ‘foo’: (Show _a, _) => _a -> _
 
index b6af606..ed7140f 100644 (file)
@@ -1,28 +1,28 @@
-\r
-T7230.hs:48:32:\r
-    Could not deduce ((x :<<= x1) ~ 'True)\r
-    from the context (Increasing xs ~ 'True)\r
-      bound by the type signature for:\r
-               crash :: (Increasing xs ~ 'True) =>\r
-                        SList xs -> SBool (Increasing xs)\r
-      at T7230.hs:47:10-68\r
-    or from (xs ~ (x : xs1))\r
-      bound by a pattern with constructor:\r
-                 SCons :: forall (k :: BOX) (x :: k) (xs :: [k]).\r
-                          Sing x -> Sing xs -> Sing (x : xs),\r
-               in an equation for ‘crash’\r
-      at T7230.hs:48:8-27\r
-    or from (xs1 ~ (x1 : xs2))\r
-      bound by a pattern with constructor:\r
-                 SCons :: forall (k :: BOX) (x :: k) (xs :: [k]).\r
-                          Sing x -> Sing xs -> Sing (x : xs),\r
-               in an equation for ‘crash’\r
-      at T7230.hs:48:17-26\r
-    Expected type: SBool (Increasing xs)\r
-      Actual type: SBool (x :<<= x1)\r
-    Relevant bindings include\r
-      y :: Sing x1 (bound at T7230.hs:48:23)\r
-      x :: Sing x (bound at T7230.hs:48:14)\r
-    In the expression: x %:<<= y\r
-    In an equation for ‘crash’:\r
-        crash (SCons x (SCons y xs)) = x %:<<= y\r
+
+T7230.hs:48:32:
+    Could not deduce: (x :<<= x1) ~ 'True
+    from the context: Increasing xs ~ 'True
+      bound by the type signature for:
+               crash :: (Increasing xs ~ 'True) =>
+                        SList xs -> SBool (Increasing xs)
+      at T7230.hs:47:10-68
+    or from: xs ~ (x : xs1)
+      bound by a pattern with constructor:
+                 SCons :: forall (k :: BOX) (x :: k) (xs :: [k]).
+                          Sing x -> Sing xs -> Sing (x : xs),
+               in an equation for ‘crash’
+      at T7230.hs:48:8-27
+    or from: xs1 ~ (x1 : xs2)
+      bound by a pattern with constructor:
+                 SCons :: forall (k :: BOX) (x :: k) (xs :: [k]).
+                          Sing x -> Sing xs -> Sing (x : xs),
+               in an equation for ‘crash’
+      at T7230.hs:48:17-26
+    Expected type: SBool (Increasing xs)
+      Actual type: SBool (x :<<= x1)
+    Relevant bindings include
+      y :: Sing x1 (bound at T7230.hs:48:23)
+      x :: Sing x (bound at T7230.hs:48:14)
+    In the expression: x %:<<= y
+    In an equation for ‘crash’:
+        crash (SCons x (SCons y xs)) = x %:<<= y
index d280deb..8ef9ef8 100644 (file)
@@ -1,19 +1,19 @@
-\r
-T7438.hs:6:14:\r
-    Couldn't match expected type ‘t1’ with actual type ‘t’\r
-      ‘t’ is untouchable\r
-        inside the constraints (t2 ~ t3)\r
-        bound by a pattern with constructor:\r
-                   Nil :: forall (k :: BOX) (b :: k). Thrist b b,\r
-                 in an equation for ‘go’\r
-        at T7438.hs:6:4-6\r
-      ‘t’ is a rigid type variable bound by\r
-          the inferred type of go :: Thrist t2 t3 -> t -> t1 at T7438.hs:6:1\r
-      ‘t1’ is a rigid type variable bound by\r
-           the inferred type of go :: Thrist t2 t3 -> t -> t1 at T7438.hs:6:1\r
-    Possible fix: add a type signature for ‘go’\r
-    Relevant bindings include\r
-      acc :: t (bound at T7438.hs:6:8)\r
-      go :: Thrist t2 t3 -> t -> t1 (bound at T7438.hs:6:1)\r
-    In the expression: acc\r
-    In an equation for ‘go’: go Nil acc = acc\r
+
+T7438.hs:6:14:
+    Couldn't match expected type ‘t1’ with actual type ‘t’
+      ‘t’ is untouchable
+        inside the constraints: t2 ~ t3
+        bound by a pattern with constructor:
+                   Nil :: forall (k :: BOX) (b :: k). Thrist b b,
+                 in an equation for ‘go’
+        at T7438.hs:6:4-6
+      ‘t’ is a rigid type variable bound by
+          the inferred type of go :: Thrist t2 t3 -> t -> t1 at T7438.hs:6:1
+      ‘t1’ is a rigid type variable bound by
+           the inferred type of go :: Thrist t2 t3 -> t -> t1 at T7438.hs:6:1
+    Possible fix: add a type signature for ‘go’
+    Relevant bindings include
+      acc :: t (bound at T7438.hs:6:8)
+      go :: Thrist t2 t3 -> t -> t1 (bound at T7438.hs:6:1)
+    In the expression: acc
+    In an equation for ‘go’: go Nil acc = acc
index 31faf3d..08ab163 100644 (file)
@@ -2,7 +2,7 @@
 T7594.hs:33:12:
     Couldn't match type ‘b’ with ‘IO ()’
       ‘b’ is untouchable
-        inside the constraints ((:&:) c0 Real a)
+        inside the constraints: (:&:) c0 Real a
         bound by a type expected by the context: (:&:) c0 Real a => a -> b
         at T7594.hs:33:8-19
       ‘b’ is a rigid type variable bound by
index 82c1ded..096f058 100644 (file)
@@ -1,19 +1,19 @@
-\r
-T8566.hs:31:9:\r
-    Could not deduce (C ('AA (t (I a ps)) as) ps fs0)\r
-      arising from a use of ‘c’\r
-    from the context (C ('AA (t (I a ps)) as) ps fs)\r
-      bound by the instance declaration at T8566.hs:29:10-67\r
-    or from ('AA t (a : as) ~ 'AA t1 as1)\r
-      bound by a pattern with constructor:\r
-                 A :: forall (r :: [*]) (k :: BOX) (t :: k) (as :: [U *]).\r
-                      I ('AA t as) r,\r
-               in an equation for ‘c’\r
-      at T8566.hs:31:5\r
-    The type variable ‘fs0’ is ambiguous\r
-    Relevant bindings include\r
-      c :: I ('AA t (a : as)) ps -> I ('AA t (a : as)) ps\r
-        (bound at T8566.hs:31:3)\r
-    In the expression: c undefined\r
-    In an equation for ‘c’: c A = c undefined\r
-    In the instance declaration for ‘C ('AA t (a : as)) ps fs’\r
+
+T8566.hs:31:9:
+    Could not deduce (C ('AA (t (I a ps)) as) ps fs0)
+      arising from a use of ‘c’
+    from the context: C ('AA (t (I a ps)) as) ps fs
+      bound by the instance declaration at T8566.hs:29:10-67
+    or from: 'AA t (a : as) ~ 'AA t1 as1
+      bound by a pattern with constructor:
+                 A :: forall (r :: [*]) (k :: BOX) (t :: k) (as :: [U *]).
+                      I ('AA t as) r,
+               in an equation for ‘c’
+      at T8566.hs:31:5
+    The type variable ‘fs0’ is ambiguous
+    Relevant bindings include
+      c :: I ('AA t (a : as)) ps -> I ('AA t (a : as)) ps
+        (bound at T8566.hs:31:3)
+    In the expression: c undefined
+    In an equation for ‘c’: c A = c undefined
+    In the instance declaration for ‘C ('AA t (a : as)) ps fs’
index 8e838e7..01869ed 100644 (file)
@@ -2,7 +2,7 @@
 T9222.hs:13:3:
     Couldn't match type ‘b0’ with ‘b’
       ‘b0’ is untouchable
-        inside the constraints (a ~ '(b0, c0))
+        inside the constraints: a ~ '(b0, c0)
         bound by the type of the constructor ‘Want’:
                    (a ~ '(b0, c0)) => Proxy b0
         at T9222.hs:13:3
index ef9900e..ea0331b 100644 (file)
@@ -1,14 +1,14 @@
-\r
-T7220a.hs:17:6:\r
-    Could not deduce (C a b)\r
-    from the context (C a0 b, TF b ~ Y)\r
-      bound by the type signature for: f :: (C a0 b, TF b ~ Y) => b\r
-      at T7220a.hs:17:6-44\r
-    Possible fix:\r
-      add (C a b) to the context of\r
-        the type signature for: f :: (C a0 b, TF b ~ Y) => b\r
-    In the ambiguity check for the type signature for ‘f’:\r
-      f :: forall a. (forall b. (C a b, TF b ~ Y) => b) -> X\r
-    To defer the ambiguity check to use sites, enable AllowAmbiguousTypes\r
-    In the type signature for ‘f’:\r
-      f :: (forall b. (C a b, TF b ~ Y) => b) -> X\r
+
+T7220a.hs:17:6:
+    Could not deduce (C a b)
+    from the context: (C a0 b, TF b ~ Y)
+      bound by the type signature for: f :: (C a0 b, TF b ~ Y) => b
+      at T7220a.hs:17:6-44
+    Possible fix:
+      add (C a b) to the context of
+        the type signature for: f :: (C a0 b, TF b ~ Y) => b
+    In the ambiguity check for the type signature for ‘f’:
+      f :: forall a. (forall b. (C a b, TF b ~ Y) => b) -> X
+    To defer the ambiguity check to use sites, enable AllowAmbiguousTypes
+    In the type signature for ‘f’:
+      f :: (forall b. (C a b, TF b ~ Y) => b) -> X
index 16df4a4..4eca08f 100644 (file)
@@ -1,7 +1,7 @@
 
 tc168.hs:17:1:
     Could not deduce (C a1 (a, b0))
-    from the context (C a1 (a, b))
+    from the context: C a1 (a, b)
       bound by the inferred type for ‘g’: C a1 (a, b) => a1 -> a
       at tc168.hs:17:1-16
     The type variable ‘b0’ is ambiguous
index f06ee68..62354d3 100644 (file)
@@ -1,12 +1,12 @@
-\r
-FailDueToGivenOverlapping.hs:27:9:\r
-    Overlapping instances for E [t0] arising from a use of ‘eop’\r
-    Matching givens (or their superclasses):\r
-      (E [Int])\r
-        bound by the type signature for: bar :: E [Int] => () -> ()\r
-        at FailDueToGivenOverlapping.hs:26:8-26\r
-    Matching instances:\r
-      instance E [a] -- Defined at FailDueToGivenOverlapping.hs:21:10\r
-    (The choice depends on the instantiation of ‘t0’)\r
-    In the expression: eop [undefined]\r
-    In an equation for ‘bar’: bar _ = eop [undefined]\r
+
+FailDueToGivenOverlapping.hs:27:9:
+    Overlapping instances for E [t0] arising from a use of ‘eop’
+    Matching givens (or their superclasses):
+      E [Int]
+        bound by the type signature for: bar :: E [Int] => () -> ()
+        at FailDueToGivenOverlapping.hs:26:8-26
+    Matching instances:
+      instance E [a] -- Defined at FailDueToGivenOverlapping.hs:21:10
+    (The choice depends on the instantiation of ‘t0’)
+    In the expression: eop [undefined]
+    In an equation for ‘bar’: bar _ = eop [undefined]
index 1af8948..d176d93 100644 (file)
@@ -1,9 +1,9 @@
-\r
-IPFail.hs:6:18:\r
-    Could not deduce (Num Bool) arising from the literal ‘5’\r
-    from the context (?x::Int)\r
-      bound by the type signature for: f0 :: (?x::Int) => () -> Bool\r
-      at IPFail.hs:5:7-31\r
-    In the expression: 5\r
-    In the expression: let ?x = 5 in ?x\r
-    In an equation for ‘f0’: f0 () = let ?x = 5 in ?x\r
+
+IPFail.hs:6:18:
+    Could not deduce (Num Bool) arising from the literal ‘5’
+    from the context: ?x::Int
+      bound by the type signature for: f0 :: (?x::Int) => () -> Bool
+      at IPFail.hs:5:7-31
+    In the expression: 5
+    In the expression: let ?x = 5 in ?x
+    In an equation for ‘f0’: f0 () = let ?x = 5 in ?x
index e0f76ee..5e7a590 100644 (file)
@@ -1,7 +1,7 @@
 
 T1897a.hs:9:1:
     Could not deduce (Wob a0 b)
-    from the context (Wob a b)
+    from the context: Wob a b
       bound by the inferred type for ‘foo’: Wob a b => b -> [b]
       at T1897a.hs:9:1-24
     The type variable ‘a0’ is ambiguous
index 2adbed4..851d017 100644 (file)
@@ -1,32 +1,32 @@
-\r
-T5300.hs:11:7:\r
-    Could not deduce (C1 a b c0)\r
-    from the context (Monad m, C1 a b c)\r
-      bound by the type signature for:\r
-               f1 :: (Monad m, C1 a b c) => a -> StateT (T b) m a\r
-      at T5300.hs:11:7-50\r
-    The type variable ‘c0’ is ambiguous\r
-    In the ambiguity check for the type signature for ‘f1’:\r
-      f1 :: forall a b (m :: * -> *) c.\r
-            (Monad m, C1 a b c) =>\r
-            a -> StateT (T b) m a\r
-    To defer the ambiguity check to use sites, enable AllowAmbiguousTypes\r
-    In the type signature for ‘f1’:\r
-      f1 :: (Monad m, C1 a b c) => a -> StateT (T b) m a\r
-\r
-T5300.hs:14:7:\r
-    Could not deduce (C2 a2 b2 c20)\r
-    from the context (Monad m, C1 a1 b1 c1, C2 a2 b2 c2)\r
-      bound by the type signature for:\r
-               f2 :: (Monad m, C1 a1 b1 c1, C2 a2 b2 c2) =>\r
-                     a1 -> StateT (T b2) m a2\r
-      at T5300.hs:14:7-69\r
-    The type variable ‘c20’ is ambiguous\r
-    In the ambiguity check for the type signature for ‘f2’:\r
-      f2 :: forall a1 b2 (m :: * -> *) a2 b1 c1 c2.\r
-            (Monad m, C1 a1 b1 c1, C2 a2 b2 c2) =>\r
-            a1 -> StateT (T b2) m a2\r
-    To defer the ambiguity check to use sites, enable AllowAmbiguousTypes\r
-    In the type signature for ‘f2’:\r
-      f2 :: (Monad m, C1 a1 b1 c1, C2 a2 b2 c2) =>\r
-            a1 -> StateT (T b2) m a2\r
+
+T5300.hs:11:7:
+    Could not deduce (C1 a b c0)
+    from the context: (Monad m, C1 a b c)
+      bound by the type signature for:
+               f1 :: (Monad m, C1 a b c) => a -> StateT (T b) m a
+      at T5300.hs:11:7-50
+    The type variable ‘c0’ is ambiguous
+    In the ambiguity check for the type signature for ‘f1’:
+      f1 :: forall a b (m :: * -> *) c.
+            (Monad m, C1 a b c) =>
+            a -> StateT (T b) m a
+    To defer the ambiguity check to use sites, enable AllowAmbiguousTypes
+    In the type signature for ‘f1’:
+      f1 :: (Monad m, C1 a b c) => a -> StateT (T b) m a
+
+T5300.hs:14:7:
+    Could not deduce (C2 a2 b2 c20)
+    from the context: (Monad m, C1 a1 b1 c1, C2 a2 b2 c2)
+      bound by the type signature for:
+               f2 :: (Monad m, C1 a1 b1 c1, C2 a2 b2 c2) =>
+                     a1 -> StateT (T b2) m a2
+      at T5300.hs:14:7-69
+    The type variable ‘c20’ is ambiguous
+    In the ambiguity check for the type signature for ‘f2’:
+      f2 :: forall a1 b2 (m :: * -> *) a2 b1 c1 c2.
+            (Monad m, C1 a1 b1 c1, C2 a2 b2 c2) =>
+            a1 -> StateT (T b2) m a2
+    To defer the ambiguity check to use sites, enable AllowAmbiguousTypes
+    In the type signature for ‘f2’:
+      f2 :: (Monad m, C1 a1 b1 c1, C2 a2 b2 c2) =>
+            a1 -> StateT (T b2) m a2
index 21145ca..aa60ffe 100644 (file)
@@ -1,20 +1,20 @@
-\r
-T5853.hs:15:52:\r
-    Could not deduce (fb ~ Subst (Subst fb a) (Elem fb))\r
-    from the context (F (Subst (Subst fb a) b),\r
-                      Elem (Subst (Subst fb a) b) ~ b,\r
-                      Subst (Subst (Subst fb a) b) (Elem fb) ~ fb,\r
-                      Subst fb b ~ Subst (Subst fb a) b,\r
-                      F (Subst fb a),\r
-                      Elem (Subst fb a) ~ a,\r
-                      Elem (Subst (Subst fb a) b) ~ b,\r
-                      Subst (Subst (Subst fb a) b) a ~ Subst fb a)\r
-      bound by the RULE "map/map" at T5853.hs:15:2-57\r
-      ‘fb’ is a rigid type variable bound by\r
-           the RULE "map/map" at T5853.hs:15:2\r
-    Relevant bindings include\r
-      f :: b -> Elem fb (bound at T5853.hs:15:19)\r
-      g :: a -> b (bound at T5853.hs:15:21)\r
-      xs :: Subst fb a (bound at T5853.hs:15:23)\r
-    In the expression: (f . g) <$> xs\r
-    When checking the transformation rule "map/map"\r
+
+T5853.hs:15:52:
+    Could not deduce: fb ~ Subst (Subst fb a) (Elem fb)
+    from the context: (F (Subst (Subst fb a) b),
+                       Elem (Subst (Subst fb a) b) ~ b,
+                       Subst (Subst (Subst fb a) b) (Elem fb) ~ fb,
+                       Subst fb b ~ Subst (Subst fb a) b,
+                       F (Subst fb a),
+                       Elem (Subst fb a) ~ a,
+                       Elem (Subst (Subst fb a) b) ~ b,
+                       Subst (Subst (Subst fb a) b) a ~ Subst fb a)
+      bound by the RULE "map/map" at T5853.hs:15:2-57
+      ‘fb’ is a rigid type variable bound by
+           the RULE "map/map" at T5853.hs:15:2
+    Relevant bindings include
+      f :: b -> Elem fb (bound at T5853.hs:15:19)
+      g :: a -> b (bound at T5853.hs:15:21)
+      xs :: Subst fb a (bound at T5853.hs:15:23)
+    In the expression: (f . g) <$> xs
+    When checking the transformation rule "map/map"
index 10acbbe..33af730 100644 (file)
@@ -1,7 +1,7 @@
 
 T7279.hs:6:10:
     Could not deduce (Show b0)
-    from the context (Eq a, Show b)
+    from the context: (Eq a, Show b)
       bound by an instance declaration: (Eq a, Show b) => Eq (T a)
       at T7279.hs:6:10-35
     The type variable ‘b0’ is ambiguous
index ecf3eb1..4d6f8d3 100644 (file)
@@ -1,8 +1,8 @@
 
 T7525.hs:5:30:
-    Could not deduce (?b::Bool)
+    Could not deduce: ?b::Bool
       arising from a use of implicit parameter ‘?b’
-    from the context (?a::Bool)
+    from the context: ?a::Bool
       bound by the implicit-parameter binding for ?a at T7525.hs:5:7-31
     In the second argument of ‘(&&)’, namely ‘?b’
     In the expression: ?a && ?b
index d1e7d3b..bc8fed9 100644 (file)
@@ -1,7 +1,7 @@
 
 T7857.hs:8:11:
     Could not deduce (PrintfType r0) arising from a use of ‘printf’
-    from the context (PrintfArg t)
+    from the context: PrintfArg t
       bound by the inferred type of g :: PrintfArg t => t -> b
       at T7857.hs:8:1-21
     The type variable ‘r0’ is ambiguous
index ad343f3..4e4515e 100644 (file)
@@ -1,6 +1,6 @@
 
 T8912.hs:7:10:
     Illegal implicit parameter ‘?imp::Int’
-    In the context: (?imp::Int)
+    In the context: ?imp::Int
     While checking an instance declaration
     In the instance declaration for ‘C [a]’
index 3f5236b..1c7e6e5 100644 (file)
@@ -1,14 +1,14 @@
-\r
-T9109.hs:8:13:\r
-    Couldn't match expected type ‘t’ with actual type ‘Bool’\r
-      ‘t’ is untouchable\r
-        inside the constraints (t1 ~ Bool)\r
-        bound by a pattern with constructor: GBool :: G Bool,\r
-                 in an equation for ‘foo’\r
-        at T9109.hs:8:5-9\r
-      ‘t’ is a rigid type variable bound by\r
-          the inferred type of foo :: G t1 -> t at T9109.hs:8:1\r
-    Possible fix: add a type signature for ‘foo’\r
-    Relevant bindings include foo :: G t1 -> t (bound at T9109.hs:8:1)\r
-    In the expression: True\r
-    In an equation for ‘foo’: foo GBool = True\r
+
+T9109.hs:8:13:
+    Couldn't match expected type ‘t’ with actual type ‘Bool’
+      ‘t’ is untouchable
+        inside the constraints: t1 ~ Bool
+        bound by a pattern with constructor: GBool :: G Bool,
+                 in an equation for ‘foo’
+        at T9109.hs:8:5-9
+      ‘t’ is a rigid type variable bound by
+          the inferred type of foo :: G t1 -> t at T9109.hs:8:1
+    Possible fix: add a type signature for ‘foo’
+    Relevant bindings include foo :: G t1 -> t (bound at T9109.hs:8:1)
+    In the expression: True
+    In an equation for ‘foo’: foo GBool = True
index d2abc05..f984848 100644 (file)
@@ -1,12 +1,12 @@
-\r
-tcfail034.hs:17:13:\r
-    Could not deduce (Integral a) arising from a use of ‘mod’\r
-    from the context (Num a, Eq a)\r
-      bound by the type signature for: test :: (Num a, Eq a) => a -> Bool\r
-      at tcfail034.hs:16:7-32\r
-    Possible fix:\r
-      add (Integral a) to the context of\r
-        the type signature for: test :: (Num a, Eq a) => a -> Bool\r
-    In the first argument of ‘(==)’, namely ‘(x `mod` 3)’\r
-    In the expression: (x `mod` 3) == 0\r
-    In an equation for ‘test’: test x = (x `mod` 3) == 0\r
+
+tcfail034.hs:17:13:
+    Could not deduce (Integral a) arising from a use of ‘mod’
+    from the context: (Num a, Eq a)
+      bound by the type signature for: test :: (Num a, Eq a) => a -> Bool
+      at tcfail034.hs:16:7-32
+    Possible fix:
+      add (Integral a) to the context of
+        the type signature for: test :: (Num a, Eq a) => a -> Bool
+    In the first argument of ‘(==)’, namely ‘(x `mod` 3)’
+    In the expression: (x `mod` 3) == 0
+    In an equation for ‘test’: test x = (x `mod` 3) == 0
index c81d309..fe116b5 100644 (file)
@@ -1,6 +1,6 @@
 
 tcfail041.hs:5:1:
     Illegal implicit parameter ‘?imp::Int’
-    In the context: (?imp::Int)
+    In the context: ?imp::Int
     While checking the super-classes of class ‘D’
     In the class declaration for ‘D’
index 12e0ea6..8180853 100644 (file)
@@ -1,24 +1,24 @@
-\r
-tcfail042.hs:15:10:\r
-    Could not deduce (Num a)\r
-      arising from the superclasses of an instance declaration\r
-    from the context (Eq a, Show a)\r
-      bound by the instance declaration at tcfail042.hs:15:10-34\r
-    Possible fix:\r
-      add (Num a) to the context of the instance declaration\r
-    In the instance declaration for ‘Bar [a]’\r
-\r
-tcfail042.hs:17:18:\r
-    Could not deduce (Num a) arising from a use of ‘foo’\r
-    from the context (Eq a, Show a)\r
-      bound by the instance declaration at tcfail042.hs:15:10-34\r
-    Possible fix:\r
-      add (Num a) to the context of the instance declaration\r
-    In the expression: foo xs\r
-    In an equation for ‘bar’:\r
-        bar (x : xs)\r
-          = foo xs\r
-          where\r
-              u = x == x\r
-              v = show x\r
-    In the instance declaration for ‘Bar [a]’\r
+
+tcfail042.hs:15:10:
+    Could not deduce (Num a)
+      arising from the superclasses of an instance declaration
+    from the context: (Eq a, Show a)
+      bound by the instance declaration at tcfail042.hs:15:10-34
+    Possible fix:
+      add (Num a) to the context of the instance declaration
+    In the instance declaration for ‘Bar [a]’
+
+tcfail042.hs:17:18:
+    Could not deduce (Num a) arising from a use of ‘foo’
+    from the context: (Eq a, Show a)
+      bound by the instance declaration at tcfail042.hs:15:10-34
+    Possible fix:
+      add (Num a) to the context of the instance declaration
+    In the expression: foo xs
+    In an equation for ‘bar’:
+        bar (x : xs)
+          = foo xs
+          where
+              u = x == x
+              v = show x
+    In the instance declaration for ‘Bar [a]’
index bdf479c..e539ea8 100644 (file)
@@ -1,76 +1,76 @@
-\r
-tcfail067.hs:1:14: Warning:\r
-    -XDatatypeContexts is deprecated: It was widely considered a misfeature, and has been removed from the Haskell language.\r
-\r
-tcfail067.hs:12:16:\r
-    No instance for (Ord a) arising from a use of ‘SubRange’\r
-    Possible fix:\r
-      add (Ord a) to the context of\r
-        the type signature for: subRangeValue :: SubRange a -> a\r
-    In the pattern: SubRange (lower, upper) value\r
-    In an equation for ‘subRangeValue’:\r
-        subRangeValue (SubRange (lower, upper) value) = value\r
-\r
-tcfail067.hs:15:11:\r
-    No instance for (Ord a) arising from a use of ‘SubRange’\r
-    Possible fix:\r
-      add (Ord a) to the context of\r
-        the type signature for: subRange :: SubRange a -> (a, a)\r
-    In the pattern: SubRange r value\r
-    In an equation for ‘subRange’: subRange (SubRange r value) = r\r
-\r
-tcfail067.hs:46:12:\r
-    Could not deduce (Ord a) arising from a use of ‘SubRange’\r
-    from the context (Show a)\r
-      bound by the type signature for:\r
-               showRange :: Show a => SubRange a -> String\r
-      at tcfail067.hs:45:14-43\r
-    Possible fix:\r
-      add (Ord a) to the context of\r
-        the type signature for: showRange :: Show a => SubRange a -> String\r
-    In the pattern: SubRange (lower, upper) value\r
-    In an equation for ‘showRange’:\r
-        showRange (SubRange (lower, upper) value)\r
-          = show value ++ " :" ++ show lower ++ ".." ++ show upper\r
-\r
-tcfail067.hs:61:12:\r
-    Could not deduce (Ord a) arising from a use of ‘numSubRangeNegate’\r
-    from the context (Num a)\r
-      bound by the instance declaration at tcfail067.hs:60:10-34\r
-    Possible fix:\r
-      add (Ord a) to the context of the instance declaration\r
-    In the expression: numSubRangeNegate\r
-    In an equation for ‘negate’: negate = numSubRangeNegate\r
-    In the instance declaration for ‘Num (SubRange a)’\r
-\r
-tcfail067.hs:65:19:\r
-    Could not deduce (Ord a) arising from a use of ‘SubRange’\r
-    from the context (Num a)\r
-      bound by the instance declaration at tcfail067.hs:60:10-34\r
-    Possible fix:\r
-      add (Ord a) to the context of the instance declaration\r
-    In the expression:\r
-      SubRange (fromInteger a, fromInteger a) (fromInteger a)\r
-    In an equation for ‘fromInteger’:\r
-        fromInteger a\r
-          = SubRange (fromInteger a, fromInteger a) (fromInteger a)\r
-    In the instance declaration for ‘Num (SubRange a)’\r
-\r
-tcfail067.hs:74:5:\r
-    Could not deduce (Ord a) arising from a use of ‘SubRange’\r
-    from the context (Num a)\r
-      bound by the type signature for:\r
-               numSubRangeBinOp :: Num a =>\r
-                                   (a -> a -> a) -> SubRange a -> SubRange a -> SubRange a\r
-      at tcfail067.hs:(71,21)-(72,58)\r
-    Possible fix:\r
-      add (Ord a) to the context of\r
-        the type signature for:\r
-        numSubRangeBinOp :: Num a =>\r
-                            (a -> a -> a) -> SubRange a -> SubRange a -> SubRange a\r
-    In the expression: SubRange (result, result) result\r
-    In an equation for ‘numSubRangeBinOp’:\r
-        numSubRangeBinOp op a b\r
-          = SubRange (result, result) result\r
-          where\r
-              result = (subRangeValue a) `op` (subRangeValue b)\r
+
+tcfail067.hs:1:14: Warning:
+    -XDatatypeContexts is deprecated: It was widely considered a misfeature, and has been removed from the Haskell language.
+
+tcfail067.hs:12:16:
+    No instance for (Ord a) arising from a use of ‘SubRange’
+    Possible fix:
+      add (Ord a) to the context of
+        the type signature for: subRangeValue :: SubRange a -> a
+    In the pattern: SubRange (lower, upper) value
+    In an equation for ‘subRangeValue’:
+        subRangeValue (SubRange (lower, upper) value) = value
+
+tcfail067.hs:15:11:
+    No instance for (Ord a) arising from a use of ‘SubRange’
+    Possible fix:
+      add (Ord a) to the context of
+        the type signature for: subRange :: SubRange a -> (a, a)
+    In the pattern: SubRange r value
+    In an equation for ‘subRange’: subRange (SubRange r value) = r
+
+tcfail067.hs:46:12:
+    Could not deduce (Ord a) arising from a use of ‘SubRange’
+    from the context: Show a
+      bound by the type signature for:
+               showRange :: Show a => SubRange a -> String
+      at tcfail067.hs:45:14-43
+    Possible fix:
+      add (Ord a) to the context of
+        the type signature for: showRange :: Show a => SubRange a -> String
+    In the pattern: SubRange (lower, upper) value
+    In an equation for ‘showRange’:
+        showRange (SubRange (lower, upper) value)
+          = show value ++ " :" ++ show lower ++ ".." ++ show upper
+
+tcfail067.hs:61:12:
+    Could not deduce (Ord a) arising from a use of ‘numSubRangeNegate’
+    from the context: Num a
+      bound by the instance declaration at tcfail067.hs:60:10-34
+    Possible fix:
+      add (Ord a) to the context of the instance declaration
+    In the expression: numSubRangeNegate
+    In an equation for ‘negate’: negate = numSubRangeNegate
+    In the instance declaration for ‘Num (SubRange a)’
+
+tcfail067.hs:65:19:
+    Could not deduce (Ord a) arising from a use of ‘SubRange’
+    from the context: Num a
+      bound by the instance declaration at tcfail067.hs:60:10-34
+    Possible fix:
+      add (Ord a) to the context of the instance declaration
+    In the expression:
+      SubRange (fromInteger a, fromInteger a) (fromInteger a)
+    In an equation for ‘fromInteger’:
+        fromInteger a
+          = SubRange (fromInteger a, fromInteger a) (fromInteger a)
+    In the instance declaration for ‘Num (SubRange a)’
+
+tcfail067.hs:74:5:
+    Could not deduce (Ord a) arising from a use of ‘SubRange’
+    from the context: Num a
+      bound by the type signature for:
+               numSubRangeBinOp :: Num a =>
+                                   (a -> a -> a) -> SubRange a -> SubRange a -> SubRange a
+      at tcfail067.hs:(71,21)-(72,58)
+    Possible fix:
+      add (Ord a) to the context of
+        the type signature for:
+        numSubRangeBinOp :: Num a =>
+                            (a -> a -> a) -> SubRange a -> SubRange a -> SubRange a
+    In the expression: SubRange (result, result) result
+    In an equation for ‘numSubRangeBinOp’:
+        numSubRangeBinOp op a b
+          = SubRange (result, result) result
+          where
+              result = (subRangeValue a) `op` (subRangeValue b)
index 9d88d70..c08bb58 100644 (file)
@@ -1,7 +1,7 @@
 
 tcfail072.hs:23:13:
     Could not deduce (Ord p0) arising from a use of ‘g’
-    from the context (Ord p, Ord q)
+    from the context: (Ord p, Ord q)
       bound by the type signature for:
                g :: (Ord p, Ord q) => AB p q -> Bool
       at tcfail072.hs:22:6-38
index fcd974d..3b8d8e9 100644 (file)
@@ -1,7 +1,7 @@
 
 tcfail080.hs:27:1:
     Could not deduce (Collection c0 a)
-    from the context (Collection c a)
+    from the context: Collection c a
       bound by the inferred type for ‘q’: Collection c a => a -> Bool
       at tcfail080.hs:27:1-27
     The type variable ‘c0’ is ambiguous
index b5be488..e4a6117 100644 (file)
@@ -1,11 +1,11 @@
-\r
-tcfail097.hs:5:6:\r
-    Could not deduce (Eq a0)\r
-    from the context (Eq a)\r
-      bound by the type signature for: f :: Eq a => Int -> Int\r
-      at tcfail097.hs:5:6-23\r
-    The type variable ‘a0’ is ambiguous\r
-    In the ambiguity check for the type signature for ‘f’:\r
-      f :: forall a. Eq a => Int -> Int\r
-    To defer the ambiguity check to use sites, enable AllowAmbiguousTypes\r
-    In the type signature for ‘f’: f :: Eq a => Int -> Int\r
+
+tcfail097.hs:5:6:
+    Could not deduce (Eq a0)
+    from the context: Eq a
+      bound by the type signature for: f :: Eq a => Int -> Int
+      at tcfail097.hs:5:6-23
+    The type variable ‘a0’ is ambiguous
+    In the ambiguity check for the type signature for ‘f’:
+      f :: forall a. Eq a => Int -> Int
+    To defer the ambiguity check to use sites, enable AllowAmbiguousTypes
+    In the type signature for ‘f’: f :: Eq a => Int -> Int
index 8ac2960..1d95319 100644 (file)
@@ -1,7 +1,7 @@
 
 tcfail098.hs:12:10:
     Could not deduce (Bar a0)
-    from the context (Bar a)
+    from the context: Bar a
       bound by an instance declaration: Bar a => Bar Bool
       at tcfail098.hs:12:10-26
     The type variable ‘a0’ is ambiguous
index f32dead..6bd3750 100644 (file)
@@ -1,13 +1,13 @@
-\r
-tcfail102.hs:1:14: Warning:\r
-    -XDatatypeContexts is deprecated: It was widely considered a misfeature, and has been removed from the Haskell language.\r
-\r
-tcfail102.hs:9:15:\r
-    Could not deduce (Integral (Ratio a)) arising from a use of ‘p’\r
-    from the context (Integral a)\r
-      bound by the type signature for:\r
-               f :: Integral a => P (Ratio a) -> P (Ratio a)\r
-      at tcfail102.hs:8:6-45\r
-    In the ‘p’ field of a record\r
-    In the expression: x {p = p x}\r
-    In an equation for ‘f’: f x = x {p = p x}\r
+
+tcfail102.hs:1:14: Warning:
+    -XDatatypeContexts is deprecated: It was widely considered a misfeature, and has been removed from the Haskell language.
+
+tcfail102.hs:9:15:
+    Could not deduce (Integral (Ratio a)) arising from a use of ‘p’
+    from the context: Integral a
+      bound by the type signature for:
+               f :: Integral a => P (Ratio a) -> P (Ratio a)
+      at tcfail102.hs:8:6-45
+    In the ‘p’ field of a record
+    In the expression: x {p = p x}
+    In an equation for ‘f’: f x = x {p = p x}
index 490640f..b23e9d9 100644 (file)
@@ -2,6 +2,6 @@
 tcfail108.hs:7:10:
     Non type-variable argument in the constraint: Eq (f (Rec f))
     (Use FlexibleContexts to permit this)
-    In the context: (Eq (f (Rec f)))
+    In the context: Eq (f (Rec f))
     While checking an instance declaration
     In the instance declaration for ‘Eq (Rec f)’
index 8e71045..7640031 100644 (file)
@@ -1,5 +1,5 @@
 
 tcfail130.hs:10:7:
-    Unbound implicit parameter (?x::Int) arising from a use of ‘woggle’
+    Unbound implicit parameter ?x::Int arising from a use of ‘woggle’
     In the expression: woggle 3
     In an equation for ‘foo’: foo = woggle 3
index 3cde64a..c6553c1 100644 (file)
@@ -1,11 +1,11 @@
-\r
-tcfail142.hs:18:8:\r
-    Could not deduce (Bar a0 r)\r
-    from the context (Bar a r)\r
-      bound by the type signature for: bar :: Bar a r => r -> ()\r
-      at tcfail142.hs:18:8-25\r
-    The type variable ‘a0’ is ambiguous\r
-    In the ambiguity check for the type signature for ‘bar’:\r
-      bar :: forall r a. Bar a r => r -> ()\r
-    To defer the ambiguity check to use sites, enable AllowAmbiguousTypes\r
-    In the type signature for ‘bar’: bar :: Bar a r => r -> ()\r
+
+tcfail142.hs:18:8:
+    Could not deduce (Bar a0 r)
+    from the context: Bar a r
+      bound by the type signature for: bar :: Bar a r => r -> ()
+      at tcfail142.hs:18:8-25
+    The type variable ‘a0’ is ambiguous
+    In the ambiguity check for the type signature for ‘bar’:
+      bar :: forall r a. Bar a r => r -> ()
+    To defer the ambiguity check to use sites, enable AllowAmbiguousTypes
+    In the type signature for ‘bar’: bar :: Bar a r => r -> ()
index 84ba876..e638099 100644 (file)
@@ -1,7 +1,7 @@
 
 tcfail181.hs:17:9:
     Could not deduce (Monad m0) arising from a use of ‘foo’
-    from the context (Monad m)
+    from the context: Monad m
       bound by the inferred type of
                wog :: Monad m => t -> Something (m Bool) e
       at tcfail181.hs:17:1-30
index ec3f4c6..4b88fc0 100644 (file)
@@ -1,9 +1,9 @@
-\r
-tcfail208.hs:4:19:\r
-    Could not deduce (Eq (m a)) arising from a use of ‘==’\r
-    from the context (Monad m, Eq a)\r
-      bound by the type signature for:\r
-               f :: (Monad m, Eq a) => a -> m a -> Bool\r
-      at tcfail208.hs:3:6-40\r
-    In the expression: (return x == y)\r
-    In an equation for ‘f’: f x y = (return x == y)\r
+
+tcfail208.hs:4:19:
+    Could not deduce (Eq (m a)) arising from a use of ‘==’
+    from the context: (Monad m, Eq a)
+      bound by the type signature for:
+               f :: (Monad m, Eq a) => a -> m a -> Bool
+      at tcfail208.hs:3:6-40
+    In the expression: (return x == y)
+    In an equation for ‘f’: f x y = (return x == y)
index 0d9d23d..614aaf5 100644 (file)
@@ -1,6 +1,6 @@
 
 tcfail211.hs:5:1:
     Illegal implicit parameter ‘?imp::Int’
-    In the context: (?imp::Int)
+    In the context: ?imp::Int
     While checking the super-classes of class ‘D’
     In the class declaration for ‘D’
index f543794..a6b63bd 100644 (file)
@@ -2,6 +2,6 @@
 tcfail213.hs:8:1:
     Illegal constraint ‘F a’ in a superclass/instance context
       (Use UndecidableInstances to permit this)
-    In the context: (F a)
+    In the context: F a
     While checking the super-classes of class ‘C’
     In the class declaration for ‘C’
index 93101f4..5520a3e 100644 (file)
@@ -2,6 +2,6 @@
 tcfail214.hs:9:10:
     Illegal constraint ‘F a’ in a superclass/instance context
       (Use UndecidableInstances to permit this)
-    In the context: (F a)
+    In the context: F a
     While checking an instance declaration
     In the instance declaration for ‘C [a]’