<div dir="ltr">The type of a pattern synonym like<div><br></div><div>   pattern FOO = 1234</div><div><br></div><div>seems to be '(Eq a, Num a) => a', which makes partially makes sense, although it's not immediately clear to me where the 'Eq a' part comes from. But probably that would be clear if I read the desugaring rules closely enough. ;-) My real question is about:</div><div><br></div><div><div>   pattern FOO = 1234 :: Int</div></div><div><br></div><div>This doesn't compile out of the box, GHC seems to require ScopedTypeVariables, too:</div><div><br></div><div><div>    Illegal type signature: `Int'</div><div>      Perhaps you intended to use ScopedTypeVariables</div><div>    In a pattern type-signature</div></div><div><br></div><div>Why is this the case? From a user perspective, the error is totally bogus, there are no visible type variables at all. Can GHC be fixed to avoid enabling ScopedTypeVariables?</div><div><br></div><div>Cheers,</div><div>   S.</div><div><br></div></div>