[Haskell-cafe] understanding generics