[Haskell-cafe] Choosing a type-class instance based on the context