6.1.1. Controlling extensions¶
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
LANGUAGEpragma, thus{-# LANGUAGE TemplateHaskell #-}(see LANGUAGE pragma).
- Haskell2010¶
Compile Haskell 2010 language variant. Enables the following language extensions:
DoAndIfThenElseRelaxedPolyRec
- Haskell98¶
Compile using Haskell 98 language variant. Enables the following language extensions:
Although not recommended, the deprecated -fglasgow-exts flag enables
a large swath of the extensions supported by GHC at once.
- -fglasgow-exts¶
The flag
-fglasgow-extsis equivalent to enabling the following extensions: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.