Fix: constraints were forgotten when there was no extra-constraints wildcard

The `Eq a` constraint in the example below was forgotten:

    f :: Eq a => _ -> a -> Int
    f True x = if x == x then 1 else 2

Remove obsolete code and minimise the diff at the same time. Also update
changed error messages.