Tests for the Coercible class
[ghc.git] / testsuite / tests / typecheck / should_fail / TcCoercibleFail.stderr
1
2 TcCoercibleFail.hs:10:8:
3     No instance for (Coercible Int ())
4       because ‛Int’ and ‛()’ are different types.
5       arising from a use of ‛coerce’
6     In the expression: coerce
7     In the expression: coerce $ one :: ()
8     In an equation for ‛foo1’: foo1 = coerce $ one :: ()
9
10 TcCoercibleFail.hs:13:8:
11     Could not deduce (Coercible (m Int) (m Age))
12       because ‛m Int’ and ‛m Age’ are different types.
13       arising from a use of ‛coerce’
14     from the context (Monad m)
15       bound by the type signature for foo2 :: Monad m => m Age
16       at TcCoercibleFail.hs:12:9-34
17     In the expression: coerce
18     In the expression: coerce $ (return one :: m Int)
19     In an equation for ‛foo2’: foo2 = coerce $ (return one :: m Int)
20
21 TcCoercibleFail.hs:15:8:
22     No instance for (Coercible (Map Int ()) (Map Age ()))
23       because the first type argument of ‛Map’ has role Nominal,
24       but the arguments ‛Int’ and ‛Age’ differ
25       arising from a use of ‛coerce’
26     In the expression: coerce
27     In the expression: coerce $ Map one () :: Map Age ()
28     In an equation for ‛foo3’: foo3 = coerce $ Map one () :: Map Age ()
29
30 TcCoercibleFail.hs:17:8:
31     No instance for (Coercible Int (Down Int))
32     because the constructor of ‛Down’ is not imported
33       arising from a use of ‛coerce’
34     In the expression: coerce
35     In the expression: coerce $ one :: Down Int
36     In an equation for ‛foo4’: foo4 = coerce $ one :: Down Int
37
38 TcCoercibleFail.hs:21:8:
39     No instance for (Coercible (Void ()) ())
40       because ‛Void’ is a recursive type constuctor
41       arising from a use of ‛coerce’
42     In the expression: coerce :: (Void ()) -> ()
43     In an equation for ‛foo5’: foo5 = coerce :: (Void ()) -> ()