Ticket #5908: DoesntWorkErrMsg.txt

File DoesntWorkErrMsg.txt, 3.2 KB (added by scooty-puff, 3 years ago)

Rejected Writer Error Message

Line 
1DoesntWork.hs:56:13:
2    Could not deduce (ex ~ x)
3    from the context (Category w, Prelude.Monad m)
4      bound by the instance declaration at DoesntWork.hs:52:10-61
5      `ex' is a rigid type variable bound by
6           the type signature for
7             >>= :: WriterT w m e ex a
8                    -> (a -> WriterT w m ex x b)
9                    -> WriterT w m e x b
10           at DoesntWork.hs:56:3
11      `x' is a rigid type variable bound by
12          the type signature for
13            >>= :: WriterT w m e ex a
14                   -> (a -> WriterT w m ex x b)
15                   -> WriterT w m e x b
16          at DoesntWork.hs:56:3
17    Expected type: WriterT w m e x b
18      Actual type: WriterT w m e ex a
19    In the expression:
20        WriterT
21      $ do { ~(a, w) <- runWriterT m;
22             ~(b, w') <- runWriterT (k a);
23             return (b, w >>> w') }
24    In an equation for `>>=':
25        m >>= k
26          = WriterT
27          $ do { ~(a, w) <- runWriterT m;
28                 ~(b, w') <- runWriterT (k a);
29                 return (b, w >>> w') }
30          where
31              >>= = (Prelude.>>=)
32              return = Prelude.return
33
34DoesntWork.hs:56:13:
35    Could not deduce (a ~ b)
36    from the context (Category w, Prelude.Monad m)
37      bound by the instance declaration at DoesntWork.hs:52:10-61
38      `a' is a rigid type variable bound by
39          the type signature for
40            >>= :: WriterT w m e ex a
41                   -> (a -> WriterT w m ex x b)
42                   -> WriterT w m e x b
43          at DoesntWork.hs:56:3
44      `b' is a rigid type variable bound by
45          the type signature for
46            >>= :: WriterT w m e ex a
47                   -> (a -> WriterT w m ex x b)
48                   -> WriterT w m e x b
49          at DoesntWork.hs:56:3
50    Expected type: WriterT w m e x b
51      Actual type: WriterT w m e ex a
52    In the expression:
53        WriterT
54      $ do { ~(a, w) <- runWriterT m;
55             ~(b, w') <- runWriterT (k a);
56             return (b, w >>> w') }
57    In an equation for `>>=':
58        m >>= k
59          = WriterT
60          $ do { ~(a, w) <- runWriterT m;
61                 ~(b, w') <- runWriterT (k a);
62                 return (b, w >>> w') }
63          where
64              >>= = (Prelude.>>=)
65              return = Prelude.return
66
67DoesntWork.hs:58:29:
68    Could not deduce (e ~ x)
69    from the context (Category w, Prelude.Monad m)
70      bound by the instance declaration at DoesntWork.hs:52:10-61
71      `e' is a rigid type variable bound by
72          the type signature for
73            >>= :: WriterT w m e ex a
74                   -> (a -> WriterT w m ex x b)
75                   -> WriterT w m e x b
76          at DoesntWork.hs:56:3
77      `x' is a rigid type variable bound by
78          the type signature for
79            >>= :: WriterT w m e ex a
80                   -> (a -> WriterT w m ex x b)
81                   -> WriterT w m e x b
82          at DoesntWork.hs:56:3
83    Expected type: e
84      Actual type: ex
85    Expected type: WriterT w m e ex a
86      Actual type: WriterT w m ex x b
87    In the return type of a call of `k'
88    In the first argument of `runWriterT', namely `(k a)'