[Haskell-cafe] Data declaration vs type classes