[Haskell-cafe] overlapping instances, selecting if type a does not belong to class?