blob: eccb22c1e4f334a6aa551d4ce5ae93c058abae01 (
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
 | .. _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:`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:`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.
 |