summaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
authorsimonpj@microsoft.com <unknown>2009-10-30 09:59:29 +0000
committersimonpj@microsoft.com <unknown>2009-10-30 09:59:29 +0000
commitaf28015f9139151ef33098481e774be92bfcbe8f (patch)
tree9ffe358c4fd37d3543c2098b800345c668bc3fe6 /compiler
parent0600645a1f0a4ebb7861038ccf6d0ffcfbbadcad (diff)
downloadhaskell-af28015f9139151ef33098481e774be92bfcbe8f.tar.gz
Deprecate the ImpredicativeTypes feature
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/
Diffstat (limited to 'compiler')
-rw-r--r--compiler/main/DynFlags.hs3
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs
index d445055197..e5a549af6b 100644
--- a/compiler/main/DynFlags.hs
+++ b/compiler/main/DynFlags.hs
@@ -1811,7 +1811,8 @@ xFlags = [
( "LiberalTypeSynonyms", Opt_LiberalTypeSynonyms, const Supported ),
( "Rank2Types", Opt_Rank2Types, const Supported ),
( "RankNTypes", Opt_RankNTypes, const Supported ),
- ( "ImpredicativeTypes", Opt_ImpredicativeTypes, const Supported ),
+ ( "ImpredicativeTypes", Opt_ImpredicativeTypes,
+ const $ Deprecated "Impredicative polymorphism will be simplified or removed in GHC 6.14" ),
( "TypeOperators", Opt_TypeOperators, const Supported ),
( "RecursiveDo", Opt_RecursiveDo,
deprecatedForLanguage "DoRec"),