blob: 84c9c8b0b664752629dba812d944c734a7e79f77 (
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 ‘s’ with ‘t’
Expected: ST s Int
Actual: ST t Int
‘s’ is a rigid type variable bound by
the type signature for:
g :: forall s. ST s Int
at tcfail103.hs:13:9-21
‘t’ is a rigid type variable bound by
the type signature for:
f :: forall t. ST t Int
at tcfail103.hs:10:1-12
• 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)
|