[Haskell-cafe] How to do reversible parsing?