users-guide: Update language extension implications
authorBen Gamari <ben@smart-cactus.org>
Thu, 14 Jan 2016 11:08:14 +0000 (12:08 +0100)
committerBen Gamari <ben@smart-cactus.org>
Thu, 14 Jan 2016 11:19:24 +0000 (12:19 +0100)
docs/users_guide/glasgow_exts.rst

index 91e0e18..6abe331 100644 (file)
@@ -2187,7 +2187,8 @@ Visible type application
 
 .. ghc-flag:: -XTypeApplications
 
-    :since: 8.0
+    :implies: :ghc-flag:`-XAllowAmbiguousTypes`
+    :since: 8.0.1
 
     Allow the use of type application syntax.
 
@@ -2421,6 +2422,8 @@ Type operators
 
 .. ghc-flag:: -XTypeOperators
 
+    :implies: :ghc-flag:`-XExplicitNamespaces`
+
     Allow the use and definition of types with operator names.
 
 In types, an operator symbol like ``(+)`` is normally treated as a type
@@ -2470,6 +2473,8 @@ Liberalised type synonyms
 
 .. ghc-flag:: -XLiberalTypeSynonyms
 
+    :implies: :ghc-flag:`-XExplicitForAll`
+
     Relax many of the Haskell 98 rules on type synonym definitions.
 
 Type synonyms are like macros at the type level, but Haskell 98 imposes
@@ -2546,6 +2551,8 @@ Existentially quantified data constructors
 
 .. ghc-flag:: -XExistentialQuantification
 
+    :implies: :ghc-flag:`-XExplicitForAll`
+
     Allow existentially quantified type variables in types.
 
 The idea of using existential quantification in data type declarations
@@ -3050,7 +3057,7 @@ Generalised Algebraic Data Types (GADTs)
 
 .. ghc-flag:: -XGADTs
 
-    :implies: :ghc-flag:`-XMonoLocalBinds`
+    :implies: :ghc-flag:`-XMonoLocalBinds`, :ghc-flag:`-XGADTSyntax`
 
     Allow use of Generalised Algebraic Data Types (GADTs).
 
@@ -3272,6 +3279,8 @@ Duplicate record fields
 
 .. ghc-flag:: -XDuplicateRecordFields
 
+    :implies: :ghc-flag:`-XDisambiguateRecordFields`
+
     Allow definition of record types with identically-named fields.
 
 Going beyond :ghc-flag:`-XDisambiguateRecordFields` (see :ref:`disambiguate-fields`),
@@ -3691,8 +3700,6 @@ Deriving instances of extra classes (``Data``, etc.)
 
 .. ghc-flag:: -XDeriveFoldable
 
-    :implies: :ghc-flag:`-XDeriveFunctor`
-
     Allow automatic deriving of instances for the ``Foldable`` typeclass.
 
 .. ghc-flag:: -XDeriveTraversable
@@ -4456,6 +4463,8 @@ Multi-parameter type classes
 
 .. ghc-flag:: -XMultiParamTypeClasses
 
+    :implies: :ghc-flag:`-XConstrainedClassMethods`
+
     Allow the definition of typeclasses with more than one parameter. 
 
 Multi-parameter type classes are permitted, with flag
@@ -4619,6 +4628,8 @@ Functional dependencies
 
 .. ghc-flag:: -XFunctionalDependencies
 
+    :implies: :ghc-flag:`-XMultiParamTypeClasses`
+
     Allow use of functional dependencies in class declarations.
 
 Functional dependencies are implemented as described by [Jones2000]_.Mark Jones in
@@ -5882,7 +5893,8 @@ Type families
 
 .. ghc-flag:: -XTypeFamilies
 
-    :implies: :ghc-flag:`-XMonoLocalBinds`
+    :implies: :ghc-flag:`-XMonoLocalBinds`, :ghc-flag:`-XKindSignatures`,
+              :ghc-flag:`-XExplicitNamespaces`
 
     Allow use and definition of indexed type and data families.
 
@@ -6743,6 +6755,8 @@ Injective type families
 
 .. ghc-flag:: -XTypeFamilyDependencies
 
+    :implies: :ghc-flag:`-XTypeFamilies`
+
     Allow functional dependency annotations on type families. This allows one to
     define injective type families.
 
@@ -8398,6 +8412,8 @@ Impredicative polymorphism
 
 .. ghc-flag:: -XImpredicativeTypes
 
+    :implies: :ghc-flag:`RankNTypes`
+
     Allow impredicative polymorphic types.
 
 In general, GHC will only instantiate a polymorphic function at a
@@ -8450,6 +8466,7 @@ Lexically scoped type variables
 .. ghc-flag:: -XScopedTypeVariables
 
     :implies: :ghc-flag:`-XRelaxedPolyRec`
+    :implies: :ghc-flag:`-XExplicitForAll`
 
     Enable lexical scoping of type variables explicitly introduced with
     ``forall``.
@@ -9421,6 +9438,8 @@ Syntax
 
 .. ghc-flag:: -XTemplateHaskell
 
+    :implies: :ghc-flag:`-XTemplateHaskellQuotes`
+
     Enable Template Haskell's splice and quotation syntax.
 
 .. ghc-flag:: -XTemplateHaskellQuotes