[Haskell-cafe] Strange "ambiguity" problems thanks to GADTs