[Haskell-cafe] GADT vs Arrows for parsers/FSMs/etc.