[Haskell-cafe] difference between class context and deriving