Bad error message for incorrect pattern synonym signature
Consider the following program
{-# LANGUAGE PatternSynonyms #-}
pattern Pat :: () => Show a => a -> Maybe a
pattern Pat a = Just a
GHC complains that
test.hs:4:9: No instance for (Show a) arising from a pattern
I think this is quite difficult to understand. The problem is that matching on Just a
doesn't provide the show constraint (it provides no constraints). A better error message here would explain this fact and maybe a short explanation of the difference between prov/req in a pattern synonym signature.