users-guide: Document -XHaskell98 and -XHaskell2010
authorBen Gamari <ben@smart-cactus.org>
Sun, 6 Oct 2019 19:42:53 +0000 (15:42 -0400)
committerMarge Bot <ben+marge-bot@smart-cactus.org>
Tue, 8 Oct 2019 09:12:58 +0000 (05:12 -0400)
compiler/main/DynFlags.hs
docs/users_guide/glasgow_exts.rst

index 1460208..6176e2b 100644 (file)
@@ -2296,6 +2296,9 @@ flattenExtensionFlags ml = foldr f defaultExtensionFlags
           f (Off f) flags = EnumSet.delete f flags
           defaultExtensionFlags = EnumSet.fromList (languageExtensions ml)
 
+-- | The language extensions implied by the various language variants.
+-- When updating this be sure to update the flag documentation in
+-- @docs/users-guide/glasgow_exts.rst@.
 languageExtensions :: Maybe Language -> [LangExt.Extension]
 
 languageExtensions Nothing
index 372e0bd..4323bee 100644 (file)
@@ -67,6 +67,45 @@ a large swath of the extensions supported by GHC at once.
     to move away from this portmanteau flag, and towards enabling features
     individually.
 
+
+.. extension:: Haskell2010
+    :shortdesc: Use the Haskell 2010 language variant.
+
+    Compile Haskell 2010 language variant. Enables the
+    following language extensions:
+
+    .. hlist::
+
+     * :extension:`ImplicitPrelude`
+     * :extension:`StarIsType`
+     * :extension:`CUSKs`
+     * :extension:`MonomorphismRestriction`
+     * :extension:`DatatypeContexts`
+     * :extension:`TraditionalRecordSyntax`
+     * :extension:`EmptyDataDecls`
+     * :extension:`ForeignFunctionInterface`
+     * :extension:`PatternGuards`
+     * :extension:`DoAndIfThenElse`
+     * :extension:`RelaxedPolyRec`
+
+
+.. extension:: Haskell98
+    :shortdesc: Use the Haskell 2010 language variant.
+
+    Compile using Haskell 98 language variant. Enables the
+    following language extensions:
+
+    .. hlist::
+
+     * :extension:`ImplicitPrelude`
+     * :extension:`StarIsType`
+     * :extension:`CUSKs`
+     * :extension:`MonomorphismRestriction`
+     * :extension:`NPlusKPatterns`
+     * :extension:`DatatypeContexts`
+     * :extension:`TraditionalRecordSyntax`
+     * :extension:`NondecreasingIndentation`
+
 .. _primitives:
 
 Unboxed types and primitive operations