Fri Oct 30 02:59:29 PDT 2009 [email protected]
* Deprecate the ImpredicativeTypes feature
Ignore-this: b5dadc6be7f0c7bcbbf3691079f41dfb
GHC has had an experimental implementation of impredicative
polymorphism for a year or two now (flag -XImpredicativeTypes).
But
a) The implementation is ridiculously complicated, and the complexity
is pervasive (in the type checker) rather than localized.
I'm very unhappy about this, especially as we add more stuff to
the type checker for type families.
b) The specification (type system) is well-defined [1], but is also pretty
complicated, and it's just too hard to predict which programs will
typecheck and which will not.
So it's time for a re-think. I propose to deprecate it in 6.12, and
remove it altogether in 6.14. We may by then have something else to
put in its place. (There is no lack of candidates [2,3,4]!)
[1] http://research.microsoft.com/en-us/um/people/simonpj/papers/boxy/
[2] http://research.microsoft.com/en-us/um/people/crusso/qml/
[3] http://research.microsoft.com/en-us/um/people/daan/pubs.html
[4] http://gallium.inria.fr/~remy/mlf/
M ./compiler/main/DynFlags.hs -1 +2
View patch online:
http://darcs.haskell.org/ghc-6.12/ghc/_darcs/patches/20091030095929-1287e-31f43d7f0c31c86e432a3b70e8e7b6373e69c26d.gz
_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc