[Haskell-cafe] Are GADTs what I need?