[Haskell-cafe] How to write a polymorphic serializer?