2 tc141.hs:11:12: error:
3     • You cannot bind scoped type variable ‘a’
4         in a pattern binding signature
5     • In the pattern: p :: a
6       In the pattern: (p :: a, q :: a)
7       In a pattern binding: (p :: a, q :: a) = x
9 tc141.hs:11:31: error:
10     • Couldn't match expected type ‘a2’ with actual type ‘a1’
11         because type variable ‘a2’ would escape its scope
12       This (rigid, skolem) type variable is bound by
13         an expression type signature:
14           a2
15         at tc141.hs:11:34
16     • In the expression: q :: a
17       In the expression: (q :: a, p)
18       In the expression: let (p :: a, q :: a) = x in (q :: a, p)
19     • Relevant bindings include
20         p :: a1 (bound at tc141.hs:11:12)
21         q :: a1 (bound at tc141.hs:11:17)
22         x :: (a1, a1) (bound at tc141.hs:11:3)
23         f :: (a1, a1) -> (a, a1) (bound at tc141.hs:11:1)
25 tc141.hs:13:13: error:
26     • You cannot bind scoped type variable ‘a’
27         in a pattern binding signature
28     • In the pattern: y :: a
29       In a pattern binding: y :: a = a
30       In the expression:
31         let y :: a = a in
32         let
33           v :: a
34           v = b
35         in v
37 tc141.hs:15:18: error:
38     • Couldn't match expected type ‘a2’ with actual type ‘p’
39         because type variable ‘a2’ would escape its scope
40       This (rigid, skolem) type variable is bound by
41         the type signature for:
42           v :: a2
43         at tc141.hs:14:14-19
44     • In the expression: b
45       In an equation for ‘v’: v = b
46       In the expression:
47         let
48           v :: a
49           v = b
50         in v
51     • Relevant bindings include
52         v :: a2 (bound at tc141.hs:15:14)
53         b :: p (bound at tc141.hs:13:5)
54         g :: a1 -> p -> a (bound at tc141.hs:13:1)