[Haskell-cafe] Generic traversals for GADTs