[Haskell-cafe] How to speedup generically parsing sum types?