Improve error messages for skolems
[ghc.git] / testsuite / tests / indexed-types / should_fail / T4093b.stderr
1
2 T4093b.hs:31:13: error:
3     • Could not deduce: e ~ C
4       from the context: (EitherCO e (A C O n) (A O O n) ~ A e O n,
5                          EitherCO x (A C C n) (A C O n) ~ A C x n)
6         bound by the type signature for:
7                    blockToNodeList :: forall (n :: * -> * -> *) e x.
8                                       (EitherCO e (A C O n) (A O O n) ~ A e O n,
9                                        EitherCO x (A C C n) (A C O n) ~ A C x n) =>
10                                       Block n e x -> A e x n
11         at T4093b.hs:(19,1)-(22,26)
12       ‘e’ is a rigid type variable bound by
13         the type signature for:
14           blockToNodeList :: forall (n :: * -> * -> *) e x.
15                              (EitherCO e (A C O n) (A O O n) ~ A e O n,
16                               EitherCO x (A C C n) (A C O n) ~ A C x n) =>
17                              Block n e x -> A e x n
18         at T4093b.hs:(19,1)-(22,26)
19       Expected type: EitherCO e (A C O n) (A O O n)
20         Actual type: (MaybeC C (n C O), MaybeC O (n O C))
21     • In the expression: (JustC n, NothingC)
22       In an equation for ‘f’: f n _ = (JustC n, NothingC)
23       In an equation for ‘blockToNodeList’:
24           blockToNodeList b
25             = foldBlockNodesF (f, l) b z
26             where
27                 z ::
28                   EitherCO e (EitherCO e (A C O n) (A O O n)) (EitherCO e (A C O n) (A O O n))
29                 z = undefined
30                 f ::
31                   n C O
32                   -> EitherCO e (A C O n) (A O O n) -> EitherCO e (A C O n) (A O O n)
33                 f n _ = (JustC n, NothingC)
34                 ....
35     • Relevant bindings include
36         f :: n C O
37              -> EitherCO e (A C O n) (A O O n) -> EitherCO e (A C O n) (A O O n)
38           (bound at T4093b.hs:31:5)
39         l :: n O C
40              -> EitherCO e (A C O n) (A O O n) -> EitherCO e (A C C n) (A O C n)
41           (bound at T4093b.hs:34:5)
42         b :: Block n e x (bound at T4093b.hs:25:17)
43         blockToNodeList :: Block n e x -> A e x n (bound at T4093b.hs:25:1)