On Thu, Apr 10, 2014 at 11:40 AM, Andres Löh <andres@well-typed.com> wrote:
Sorry for continuing to reply to myself. But all this seems fixed in 7.8.1:

Prelude> let whee :: (Show a, Eq a, a) => Bool; whee x = x == x && null (show x)

<interactive>:5:28:
    Expected a constraint, but 'a' has kind '*'
    In the type signature for 'whee': whee :: (Show a, Eq a, a) => Bool
Prelude> let whee :: (Show a, Eq a) => a => Bool; whee x = x == x &&
null (show x)

I don't have a GHC 7.8 handy.  Can you check to see if:

whee :: Show a => Eq a => (a -> Bool) 

works over there?