
| For example, much as I love GADTs and would be all for them being added | in some future language report, I do not feel they should be added this | time around. (Though I emphatically and wholeheartedly support adding | GADTSyntax.) The primary reason being that while the semantics of the | data types themselves is easy enough to define, there's no really | sensible way of specifying how type inference should work for them. GHC | has gone back and forth with a bunch of different inference methods | over the years, and I don't think that's really stabilized yet; Actually it has stabilised. The OutsideIn journal paper (http://research.microsoft.com/en-us/um/people/simonpj/papers/constraints/ind...) describes how it works, and has been absolutely stable for several years. (All the movement has been on other things: type families, kind polymorphism, etc.) I agree that the specification isn't entirely satisfactory, because it's a bit operational. But it's robust and stable. I'm not arguing for or against GADTs in the next iteration of Haskell. But I don't think that the ease or difficulty of specifying GADTs is going to change much, so waiting till next time may not help; useful as they are, a declarative specification for GADTs is tricky. Simon