[Haskell-cafe] Generic parser without GADTs