Clean up Coercible handling, and interaction of data families with newtypes
[ghc.git] / testsuite / tests / typecheck / should_fail / TcCoercibleFail.stderr
1
2 TcCoercibleFail.hs:11:8:
3     Could not coerce from ‘Int’ to ‘()’
4       because ‘Int’
5           and ‘()’
6           are different types.
7       arising from a use of ‘coerce’
8     In the expression: coerce
9     In the expression: coerce $ one :: ()
10     In an equation for ‘foo1’: foo1 = coerce $ one :: ()
11
12 TcCoercibleFail.hs:14:8:
13     Could not coerce from ‘m Int’ to ‘m Age’
14       because ‘m Int’
15           and ‘m Age’
16           are different types.
17       arising from a use of ‘coerce’
18     from the context (Monad m)
19       bound by the type signature for foo2 :: Monad m => m Age
20       at TcCoercibleFail.hs:13:9-34
21     In the expression: coerce
22     In the expression: coerce $ (return one :: m Int)
23     In an equation for ‘foo2’: foo2 = coerce $ (return one :: m Int)
24
25 TcCoercibleFail.hs:16:8:
26     Could not coerce from ‘Map Int ()’ to ‘Map Age ()’
27       because the first type argument of ‘Map’ has role Nominal,
28       but the arguments ‘Int’ and ‘Age’ differ
29       arising from a use of ‘coerce’
30     In the expression: coerce
31     In the expression: coerce $ Map one () :: Map Age ()
32     In an equation for ‘foo3’: foo3 = coerce $ Map one () :: Map Age ()
33
34 TcCoercibleFail.hs:18:8:
35     Could not coerce from ‘Int’ to ‘Down Int’
36     because the data constructor ‘Data.Ord.Down’
37       of newtype ‘Down’ is not in scope
38       arising from a use of ‘coerce’
39     In the expression: coerce
40     In the expression: coerce $ one :: Down Int
41     In an equation for ‘foo4’: foo4 = coerce $ one :: Down Int
42
43 TcCoercibleFail.hs:21:8:
44     Context reduction stack overflow; size = 101
45     Use -fcontext-stack=N to increase stack size to N
46       Coercible Void ()
47     In the expression: coerce :: Void -> ()
48     In an equation for ‘foo5’: foo5 = coerce :: Void -> ()
49
50 TcCoercibleFail.hs:30:8:
51     Context reduction stack overflow; size = 101
52     Use -fcontext-stack=N to increase stack size to N
53       Coercible
54         (Either Int (Fix (Either Int))) (Either Age (Fix (Either Age)))
55     In the expression: coerce :: Fix (Either Int) -> Fix (Either Age)
56     In an equation for ‘foo6’:
57         foo6 = coerce :: Fix (Either Int) -> Fix (Either Age)
58
59 TcCoercibleFail.hs:31:8:
60     Could not coerce from ‘Either Int (Fix (Either Int))’ to ‘()’
61       because ‘Either Int (Fix (Either Int))’
62           and ‘()’
63           are different types.
64       arising from a use of ‘coerce’
65     In the expression: coerce :: Fix (Either Int) -> ()
66     In an equation for ‘foo7’: foo7 = coerce :: Fix (Either Int) -> ()