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)