blob: fff8107b135a265e7414bb83ab57475abead4635 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
.. _options-language:
Controlling extensions
----------------------
.. index::
single: language; option
single: options; language
single: extensions; options controlling
Language extensions can be controlled (i.e. allowed or not) in two ways:
- Every language extension can be switched on by a command-line flag
"``-X...``" (e.g. ``-XTemplateHaskell``), and switched off by the
flag "``-XNo...``"; (e.g. ``-XNoTemplateHaskell``).
- Language extensions can also be enabled using the ``LANGUAGE`` pragma, thus
``{-# LANGUAGE TemplateHaskell #-}`` (see :ref:`language-pragma`).
.. 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:`FieldSelectors`
* :extension:`EmptyDataDecls`
* :extension:`ForeignFunctionInterface`
* :extension:`PatternGuards`
* :extension:`DoAndIfThenElse`
* :extension:`RelaxedPolyRec`
.. extension:: Haskell98
:shortdesc: Use the Haskell 98 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:`FieldSelectors`
* :extension:`NondecreasingIndentation`
Although not recommended, the deprecated :ghc-flag:`-fglasgow-exts` flag enables
a large swath of the extensions supported by GHC at once.
.. ghc-flag:: -fglasgow-exts
:shortdesc: Deprecated. Enable most language extensions;
see :ref:`options-language` for exactly which ones.
:type: dynamic
:reverse: -fno-glasgow-exts
:category: misc
The flag ``-fglasgow-exts`` is equivalent to enabling the following extensions:
.. include:: ../what_glasgow_exts_does.rst
Enabling these options is the *only* effect of ``-fglasgow-exts``. We are trying
to move away from this portmanteau flag, and towards enabling features
individually.
|