blob: 2efd784f31b13e7ed71d3506164af80a4ea4519e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
T15290a.hs:25:12: error:
• Couldn't match representation of type ‘m (Int, IntStateT m a1)’
with that of ‘m (Int, StateT Int m a1)’
arising from a use of ‘coerce’
NB: We cannot know what roles the parameters to ‘m’ have;
we must assume that the role is nominal
• In the expression:
coerce
@(forall a. StateT Int m (StateT Int m a) -> StateT Int m a)
@(forall a. IntStateT m (IntStateT m a) -> IntStateT m a)
join
In an equation for ‘join’:
join
= coerce
@(forall a. StateT Int m (StateT Int m a) -> StateT Int m a)
@(forall a. IntStateT m (IntStateT m a) -> IntStateT m a)
join
In the instance declaration for ‘Monad (IntStateT m)’
• Relevant bindings include
join :: IntStateT m (IntStateT m a) -> IntStateT m a
(bound at T15290a.hs:25:5)
|