tcfail198.hs:6:36: error:
• Couldn't match expected type ‘a1’ with actual type ‘a’
‘a1’ is a rigid type variable bound by
an expression type signature:
forall a1. a1
at tcfail198.hs:6:41
‘a’ is a rigid type variable bound by
the inferred type of f3 :: [a] -> [a]
at tcfail198.hs:6:1-44
• In the expression: x :: a
In the second argument of ‘(++)’, namely ‘[x :: a]’
In the expression: xs ++ [x :: a]
• Relevant bindings include
xs :: [a] (bound at tcfail198.hs:6:21)
x :: a (bound at tcfail198.hs:6:19)
f3 :: [a] -> [a] (bound at tcfail198.hs:6:6)