tc141.hs:11:12: error:
• You cannot bind scoped type variable ‘a’
in a pattern binding signature
• In the pattern: p :: a
In the pattern: (p :: a, q :: a)
In a pattern binding: (p :: a, q :: a) = x
tc141.hs:11:31: error:
• Couldn't match expected type ‘a1’ with actual type ‘b’
‘a1’ is a rigid type variable bound by
an expression type signature:
forall a1. a1
at tc141.hs:11:34
‘b’ is a rigid type variable bound by
the inferred type of f :: (b, b) -> (a, b)
at tc141.hs:11:1-37
• In the expression: q :: a
In the expression: (q :: a, p)
In the expression: let (p :: a, q :: a) = x in (q :: a, p)
• Relevant bindings include
p :: b (bound at tc141.hs:11:12)
q :: b (bound at tc141.hs:11:17)
x :: (b, b) (bound at tc141.hs:11:3)
f :: (b, b) -> (a, b) (bound at tc141.hs:11:1)
tc141.hs:13:13: error:
• You cannot bind scoped type variable ‘a’
in a pattern binding signature
• In the pattern: y :: a
In a pattern binding: y :: a = a
In the expression:
let y :: a = a in
let
v :: a
v = b
in v
tc141.hs:15:18: error:
• Couldn't match expected type ‘a1’ with actual type ‘p1’
‘a1’ is a rigid type variable bound by
the type signature for:
v :: forall a1. a1
at tc141.hs:14:14-19
‘p1’ is a rigid type variable bound by
the inferred type of g :: p -> p1 -> a
at tc141.hs:(13,1)-(16,13)
• In the expression: b
In an equation for ‘v’: v = b
In the expression:
let
v :: a
v = b
in v
• Relevant bindings include
v :: a1 (bound at tc141.hs:15:14)
b :: p1 (bound at tc141.hs:13:5)
g :: p -> p1 -> a (bound at tc141.hs:13:1)