For some reason, definitions f3 and f6 work, while f4 does not
f3 :: Num a => a -> a -> a -> a -> a
f3 = undefined
f4 :: String a => a -> a -> a -> a -> a
f4 = undefined
f6 :: [Char] -> [Char] -> [Char] -> [Char] -> [Char]
f6 = undefined
The error message is Expected kind ‘* -> Constraint’, but ‘String’ has kind ‘*’, which I have googled but did not manage to understand
Do note the similarity between f3 and f4. Also, I am a beginner, if that is relevant to the possible explanations.
Thanks!