It seems to be an issue with giving everything on a single line:Prelude ë> let whee x = x == x && null (show x) :: Show a => Eq a => a => Bool<interactive>:2:14:Couldn't match expected type `a -> Bool' with actual type `Bool'In the expression:x == x && null (show x) :: Show a => Eq a => a => BoolIn an equation for `whee':whee x = x == x && null (show x) :: Show a => Eq a => a => Bool
I see now to make it work as a one liner I could do it this way:Prelude ë> :t (\x -> x == x && null (show x)) :: Show a => Eq a => a => Bool(\x -> x == x && null (show x)) :: Show a => Eq a => a => Bool:: (Eq a, Show a) => a -> Bool