blob: ba0694b117e511d5126907436f1e416936b26846 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
tcfail103.hs:15:13: error:
• Couldn't match type ‘t’ with ‘s’
‘t’ is a rigid type variable bound by
the type signature for:
f :: forall t. ST t Int
at tcfail103.hs:10:1-12
‘s’ is a rigid type variable bound by
the type signature for:
g :: forall s. ST s Int
at tcfail103.hs:13:9-21
Expected type: ST s Int
Actual type: ST t Int
• In the expression: readSTRef v
In an equation for ‘g’: g = readSTRef v
In the expression:
do v <- newSTRef 5
let g :: ST s Int
g = readSTRef v
g
• Relevant bindings include
g :: ST s Int (bound at tcfail103.hs:15:9)
v :: STRef t Int (bound at tcfail103.hs:12:5)
f :: ST t Int (bound at tcfail103.hs:11:1)
|