2 T4093b.hs:31:13:
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 :: (EitherCO e (A C O n) (A O O n) ~ A e O n,
8                                    EitherCO x (A C C n) (A C O n) ~ A C x n) =>
9                                   Block n e x -> A e x n
10       at T4093b.hs:(20,3)-(22,26)
11       ‘e’ is a rigid type variable bound by
12           the type signature for:
13           blockToNodeList :: (EitherCO e (A C O n) (A O O n) ~ A e O n,
14                               EitherCO x (A C C n) (A C O n) ~ A C x n) =>
15                              Block n e x -> A e x n
16           at T4093b.hs:20:12
17     Expected type: EitherCO e (A C O n) (A O O n)
18       Actual type: (MaybeC C (n C O), MaybeC O (n O C))
19     Relevant bindings include
20       f :: n C O
21            -> EitherCO e (A C O n) (A O O n) -> EitherCO e (A C O n) (A O O n)
22         (bound at T4093b.hs:31:5)
23       l :: n O C
24            -> EitherCO e (A C O n) (A O O n) -> EitherCO e (A C C n) (A O C n)
25         (bound at T4093b.hs:34:5)
26       b :: Block n e x (bound at T4093b.hs:25:17)
27       blockToNodeList :: Block n e x -> A e x n (bound at T4093b.hs:25:1)
28     In the expression: (JustC n, NothingC)
29     In an equation for ‘f’: f n _ = (JustC n, NothingC)
30     In an equation for ‘blockToNodeList’:
31         blockToNodeList b
32           = foldBlockNodesF (f, l) b z
33           where
34               z ::
35                 EitherCO e (EitherCO e (A C O n) (A O O n)) (EitherCO e (A C O n) (A O O n))
36               z = undefined
37               f ::
38                 n C O
39                 -> EitherCO e (A C O n) (A O O n) -> EitherCO e (A C O n) (A O O n)
40               f n _ = (JustC n, NothingC)
41               ....