See comment:47 on Trac #11715. It turned out that there was no
need to worry about unwrapping newtypes.
But there is a problem: how do we reject types like
Eq a -> a -> a? Note that I've written -> instead of
=>! Now, Eq a, having kind TYPE blah, is a perfectly
good argument to ->. Because we need to allow for unification,
we can't really sort this out until we zonk. But by then, the
HsSyn is long gone, so we can't figure out that the user
swapped the arrows.