[Haskell-cafe] GADTs vs arrows/typeclasses