[Haskell-cafe] Ambiguous type variable with subclass instance (also: is there a better way to do this?)