Implement new -XTemplateHaskellQuotes pragma
[ghc.git] / utils / mkUserGuidePart / Options / Language.hs
1 module Options.Language where
2
3 import Types
4
5 languageOptions :: [Flag]
6 languageOptions =
7 [ flag { flagName = "-fconstraint-solver-iterations=⟨n⟩"
8 , flagDescription =
9 "*default: 4.* Set the iteration limit for the type-constraint "++
10 "solver. Typically one iteration suffices; so please "++
11 "yell if you find you need to set it higher than the default. "++
12 "Zero means infinity."
13 , flagType = DynamicFlag
14 }
15 , flag { flagName = "-freduction-depth=⟨n⟩"
16 , flagDescription =
17 "*default: 200.* Set the :ref:`limit for type simplification "++
18 "<undecidable-instances>`. Zero means infinity."
19 , flagType = DynamicFlag
20 }
21 , flag { flagName = "-fcontext-stack=⟨n⟩"
22 , flagDescription =
23 "Deprecated. Use ``-freduction-depth=⟨n⟩`` instead."
24 , flagType = DynamicFlag
25 }
26 , flag { flagName = "-fglasgow-exts"
27 , flagDescription =
28 "Deprecated. Enable most language extensions; "++
29 "see :ref:`options-language` for exactly which ones."
30 , flagType = DynamicFlag
31 , flagReverse = "-fno-glasgow-exts"
32 }
33 , flag { flagName = "-firrefutable-tuples"
34 , flagDescription = "Make tuple pattern matching irrefutable"
35 , flagType = DynamicFlag
36 , flagReverse = "-fno-irrefutable-tuples"
37 }
38 , flag { flagName = "-fpackage-trust"
39 , flagDescription =
40 "Enable :ref:`Safe Haskell <safe-haskell>` trusted package "++
41 "requirement for trustworthy modules."
42 , flagType = DynamicFlag
43 }
44 , flag { flagName = "-ftype-function-depth=⟨n⟩"
45 , flagDescription = "Deprecated. Use ``-freduction-depth=⟨n⟩`` instead."
46 , flagType = DynamicFlag
47 }
48 , flag { flagName = "-XAllowAmbiguousTypes"
49 , flagDescription =
50 "Allow the user to write :ref:`ambiguous types <ambiguity>`, and "++
51 "the type inference engine to infer them."
52 , flagType = DynamicFlag
53 , flagReverse = "-XNoAllowAmbiguousTypes"
54 , flagSince = "7.8.1"
55 }
56 , flag { flagName = "-XArrows"
57 , flagDescription =
58 "Enable :ref:`arrow notation <arrow-notation>` extension"
59 , flagType = DynamicFlag
60 , flagReverse = "-XNoArrows"
61 , flagSince = "6.8.1"
62 }
63 , flag { flagName = "-XApplicativeDo"
64 , flagDescription =
65 "Enable :ref:`Applicative do-notation desugaring <applicative-do>`"
66 , flagType = DynamicFlag
67 , flagReverse = "-XNoApplicativeDo"
68 , flagSince = "7.12.1"
69 }
70 , flag { flagName = "-XAutoDeriveTypeable"
71 , flagDescription =
72 "As of GHC 7.10, this option is not needed, and should not be "++
73 "used. Previously this would automatically :ref:`derive Typeable "++
74 "instances for every datatype and type class declaration "++
75 "<deriving-typeable>`. Implies ``-XDeriveDataTypeable``."
76 , flagType = DynamicFlag
77 , flagReverse = "-XNoAutoDeriveTypeable"
78 , flagSince = "7.8.1"
79 }
80 , flag { flagName = "-XBangPatterns"
81 , flagDescription = "Enable :ref:`bang patterns <bang-patterns>`."
82 , flagType = DynamicFlag
83 , flagReverse = "-XNoBangPatterns"
84 , flagSince = "6.8.1"
85 }
86 , flag { flagName = "-XBinaryLiterals"
87 , flagDescription =
88 "Enable support for :ref:`binary literals <binary-literals>`."
89 , flagType = DynamicFlag
90 , flagReverse = "-XNoBinaryLiterals"
91 , flagSince = "7.10.1"
92 }
93 , flag { flagName = "-XCApiFFI"
94 , flagDescription =
95 "Enable :ref:`the CAPI calling convention <ffi-capi>`."
96 , flagType = DynamicFlag
97 , flagReverse = "-XNoCAPIFFI"
98 , flagSince = "7.10.1"
99 }
100 , flag { flagName = "-XConstrainedClassMethods"
101 , flagDescription =
102 "Enable :ref:`constrained class methods <class-method-types>`."
103 , flagType = DynamicFlag
104 , flagReverse = "-XNoConstrainedClassMethods"
105 , flagSince = "6.8.1"
106 }
107 , flag { flagName = "-XConstraintKinds"
108 , flagDescription =
109 "Enable a :ref:`kind of constraints <constraint-kind>`."
110 , flagType = DynamicFlag
111 , flagReverse = "-XNoConstraintKinds"
112 , flagSince = "7.4.1"
113 }
114 , flag { flagName = "-XCPP"
115 , flagDescription =
116 "Enable the :ref:`C preprocessor <c-pre-processor>`."
117 , flagType = DynamicFlag
118 , flagReverse = "-XNoCPP"
119 , flagSince = "6.8.1"
120 }
121 , flag { flagName = "-XDataKinds"
122 , flagDescription = "Enable :ref:`datatype promotion <promotion>`."
123 , flagType = DynamicFlag
124 , flagReverse = "-XNoDataKinds"
125 , flagSince = "7.4.1"
126 }
127 , flag { flagName = "-XDefaultSignatures"
128 , flagDescription =
129 "Enable :ref:`default signatures <class-default-signatures>`."
130 , flagType = DynamicFlag
131 , flagReverse = "-XNoDefaultSignatures"
132 , flagSince = "7.2.1"
133 }
134 , flag { flagName = "-XDeriveAnyClass"
135 , flagDescription =
136 "Enable :ref:`deriving for any class <derive-any-class>`."
137 , flagType = DynamicFlag
138 , flagReverse = "-XNoDeriveAnyClass"
139 , flagSince = "7.10.1"
140 }
141 , flag { flagName = "-XDeriveDataTypeable"
142 , flagDescription =
143 "Enable ``deriving`` for the :ref:`Data class "++
144 "<deriving-typeable>`. Implied by ``-XAutoDeriveTypeable``."
145 , flagType = DynamicFlag
146 , flagReverse = "-XNoDeriveDataTypeable"
147 , flagSince = "6.8.1"
148 }
149 , flag { flagName = "-XDeriveFunctor"
150 , flagDescription =
151 "Enable :ref:`deriving for the Functor class <deriving-extra>`. "++
152 "Implied by ``-XDeriveTraversable``."
153 , flagType = DynamicFlag
154 , flagReverse = "-XNoDeriveFunctor"
155 , flagSince = "7.10.1"
156 }
157 , flag { flagName = "-XDeriveFoldable"
158 , flagDescription =
159 "Enable :ref:`deriving for the Foldable class <deriving-extra>`. "++
160 "Implied by ``-XDeriveTraversable``."
161 , flagType = DynamicFlag
162 , flagReverse = "-XNoDeriveFoldable"
163 , flagSince = "7.10.1"
164 }
165 , flag { flagName = "-XDeriveGeneric"
166 , flagDescription =
167 "Enable :ref:`deriving for the Generic class <deriving-typeable>`."
168 , flagType = DynamicFlag
169 , flagReverse = "-XNoDeriveGeneric"
170 , flagSince = "7.2.1"
171 }
172 , flag { flagName = "-XDeriveGeneric"
173 , flagDescription =
174 "Enable :ref:`deriving for the Generic class <deriving-typeable>`."
175 , flagType = DynamicFlag
176 , flagReverse = "-XNoDeriveGeneric"
177 , flagSince = "7.2.1"
178 }
179 , flag { flagName = "-XDeriveLift"
180 , flagDescription =
181 "Enable :ref:`deriving for the Lift class <deriving-lift>`"
182 , flagType = DynamicFlag
183 , flagReverse = "-XNoDeriveLift"
184 , flagSince = "7.2.1"
185 }
186 , flag { flagName = "-XDeriveTraversable"
187 , flagDescription =
188 "Enable :ref:`deriving for the Traversable class <deriving-extra>`. "++
189 "Implies ``-XDeriveFunctor`` and ``-XDeriveFoldable``."
190 , flagType = DynamicFlag
191 , flagReverse = "-XNoDeriveTraversable"
192 , flagSince = "7.10.1"
193 }
194 , flag { flagName = "-XDisambiguateRecordFields"
195 , flagDescription =
196 "Enable :ref:`record field disambiguation <disambiguate-fields>`. "++
197 "Implied by ``-XRecordWildCards``."
198 , flagType = DynamicFlag
199 , flagReverse = "-XNoDisambiguateRecordFields"
200 , flagSince = "6.8.1"
201 }
202 , flag { flagName = "-XEmptyCase"
203 , flagDescription =
204 "Allow :ref:`empty case alternatives <empty-case>`."
205 , flagType = DynamicFlag
206 , flagReverse = "-XNoEmptyCase"
207 , flagSince = "7.8.1"
208 }
209 , flag { flagName = "-XEmptyDataDecls"
210 , flagDescription = "Enable empty data declarations."
211 , flagType = DynamicFlag
212 , flagReverse = "-XNoEmptyDataDecls"
213 , flagSince = "6.8.1"
214 }
215 , flag { flagName = "-XExistentialQuantification"
216 , flagDescription =
217 "Enable :ref:`existential quantification <existential-quantification>`."
218 , flagType = DynamicFlag
219 , flagReverse = "-XNoExistentialQuantification"
220 , flagSince = "6.8.1"
221 }
222 , flag { flagName = "-XExplicitForAll"
223 , flagDescription =
224 "Enable :ref:`explicit universal quantification <explicit-foralls>`."++
225 " Implied by ``-XScopedTypeVariables``, ``-XLiberalTypeSynonyms``,"++
226 " ``-XRankNTypes`` and ``-XExistentialQuantification``."
227 , flagType = DynamicFlag
228 , flagReverse = "-XNoExplicitForAll"
229 , flagSince = "6.12.1"
230 }
231 , flag { flagName = "-XExplicitNamespaces"
232 , flagDescription =
233 "Enable using the keyword ``type`` to specify the namespace of "++
234 "entries in imports and exports (:ref:`explicit-namespaces`). "++
235 "Implied by ``-XTypeOperators`` and ``-XTypeFamilies``."
236 , flagType = DynamicFlag
237 , flagReverse = "-XNoExplicitNamespaces"
238 , flagSince = "7.6.1"
239 }
240 , flag { flagName = "-XExtendedDefaultRules"
241 , flagDescription =
242 "Use GHCi's :ref:`extended default rules <extended-default-rules>` "++
243 "in a normal module."
244 , flagType = DynamicFlag
245 , flagReverse = "-XNoExtendedDefaultRules"
246 , flagSince = "6.8.1"
247 }
248 , flag { flagName = "-XFlexibleContexts"
249 , flagDescription =
250 "Enable :ref:`flexible contexts <flexible-contexts>`. Implied by "++
251 "``-XImplicitParams``."
252 , flagType = DynamicFlag
253 , flagReverse = "-XNoFlexibleContexts"
254 , flagSince = "6.8.1"
255 }
256 , flag { flagName = "-XFlexibleInstances"
257 , flagDescription =
258 "Enable :ref:`flexible instances <instance-rules>`. "++
259 "Implies ``-XTypeSynonymInstances``. "++
260 "Implied by ``-XImplicitParams``."
261 , flagType = DynamicFlag
262 , flagReverse = "-XNoFlexibleInstances"
263 , flagSince = "6.8.1"
264 }
265 , flag { flagName = "-XForeignFunctionInterface"
266 , flagDescription =
267 "Enable :ref:`foreign function interface <ffi>`."
268 , flagType = DynamicFlag
269 , flagReverse = "-XNoForeignFunctionInterface"
270 , flagSince = "6.8.1"
271 }
272 , flag { flagName = "-XFunctionalDependencies"
273 , flagDescription =
274 "Enable :ref:`functional dependencies <functional-dependencies>`. "++
275 "Implies ``-XMultiParamTypeClasses``."
276 , flagType = DynamicFlag
277 , flagReverse = "-XNoFunctionalDependencies"
278 , flagSince = "6.8.1"
279 }
280 , flag { flagName = "-XGADTs"
281 , flagDescription =
282 "Enable :ref:`generalised algebraic data types <gadt>`. "++
283 "Implies ``-XGADTSyntax`` and ``-XMonoLocalBinds``."
284 , flagType = DynamicFlag
285 , flagReverse = "-XNoGADTs"
286 , flagSince = "6.8.1"
287 }
288 , flag { flagName = "-XGADTSyntax"
289 , flagDescription =
290 "Enable :ref:`generalised algebraic data type syntax <gadt-style>`."
291 , flagType = DynamicFlag
292 , flagReverse = "-XNoGADTSyntax"
293 , flagSince = "7.2.1"
294 }
295 , flag { flagName = "-XGeneralizedNewtypeDeriving"
296 , flagDescription =
297 "Enable :ref:`newtype deriving <newtype-deriving>`."
298 , flagType = DynamicFlag
299 , flagReverse = "-XNoGeneralizedNewtypeDeriving"
300 , flagSince = "6.8.1"
301 }
302 , flag { flagName = "-XGenerics"
303 , flagDescription =
304 "Deprecated, does nothing. No longer enables "++
305 ":ref:`generic classes <generic-classes>`. See also GHC's support "++
306 "for :ref:`generic programming <generic-programming>`."
307 , flagType = DynamicFlag
308 , flagReverse = "-XNoGenerics"
309 , flagSince = "6.8.1"
310 }
311 , flag { flagName = "-XImplicitParams"
312 , flagDescription =
313 "Enable :ref:`Implicit Parameters <implicit-parameters>`. "++
314 "Implies ``-XFlexibleContexts`` and ``-XFlexibleInstances``."
315 , flagType = DynamicFlag
316 , flagReverse = "-XNoImplicitParams"
317 , flagSince = "6.8.1"
318 }
319 , flag { flagName = "-XNoImplicitPrelude"
320 , flagDescription =
321 "Don't implicitly ``import Prelude``. "++
322 "Implied by ``-XRebindableSyntax``."
323 , flagType = DynamicFlag
324 , flagReverse = "-XImplicitPrelude"
325 , flagSince = "6.8.1"
326 }
327 , flag { flagName = "-XImpredicativeTypes"
328 , flagDescription =
329 "Enable :ref:`impredicative types <impredicative-polymorphism>`. "++
330 "Implies ``-XRankNTypes``."
331 , flagType = DynamicFlag
332 , flagReverse = "-XNoImpredicativeTypes"
333 , flagSince = "6.10.1"
334 }
335 , flag { flagName = "-XIncoherentInstances"
336 , flagDescription =
337 "Enable :ref:`incoherent instances <instance-overlap>`. "++
338 "Implies ``-XOverlappingInstances``."
339 , flagType = DynamicFlag
340 , flagReverse = "-XNoIncoherentInstances"
341 , flagSince = "6.8.1"
342 }
343 , flag { flagName = "-XInstanceSigs"
344 , flagDescription =
345 "Enable :ref:`instance signatures <instance-sigs>`."
346 , flagType = DynamicFlag
347 , flagReverse = "-XNoInstanceSigs"
348 , flagSince = "7.10.1"
349 }
350 , flag { flagName = "-XInterruptibleFFI"
351 , flagDescription = "Enable interruptible FFI."
352 , flagType = DynamicFlag
353 , flagReverse = "-XNoInterruptibleFFI"
354 , flagSince = "7.2.1"
355 }
356 , flag { flagName = "-XKindSignatures"
357 , flagDescription =
358 "Enable :ref:`kind signatures <kinding>`. "++
359 "Implied by ``-XTypeFamilies`` and ``-XPolyKinds``."
360 , flagType = DynamicFlag
361 , flagReverse = "-XNoKindSignatures"
362 , flagSince = "6.8.1"
363 }
364 , flag { flagName = "-XLambdaCase"
365 , flagDescription =
366 "Enable :ref:`lambda-case expressions <lambda-case>`."
367 , flagType = DynamicFlag
368 , flagReverse = "-XNoLambdaCase"
369 , flagSince = "7.6.1"
370 }
371 , flag { flagName = "-XLiberalTypeSynonyms"
372 , flagDescription =
373 "Enable :ref:`liberalised type synonyms <type-synonyms>`."
374 , flagType = DynamicFlag
375 , flagReverse = "-XNoLiberalTypeSynonyms"
376 , flagSince = "6.8.1"
377 }
378 , flag { flagName = "-XMagicHash"
379 , flagDescription =
380 "Allow ``#`` as a :ref:`postfix modifier on identifiers <magic-hash>`."
381 , flagType = DynamicFlag
382 , flagReverse = "-XNoMagicHash"
383 , flagSince = "6.8.1"
384 }
385 , flag { flagName = "-XMonadComprehensions"
386 , flagDescription =
387 "Enable :ref:`monad comprehensions <monad-comprehensions>`."
388 , flagType = DynamicFlag
389 , flagReverse = "-XNoMonadComprehensions"
390 , flagSince = "7.2.1"
391 }
392 , flag { flagName = "-XMonoLocalBinds"
393 , flagDescription =
394 "Enable :ref:`do not generalise local bindings <mono-local-binds>`. "++
395 "Implied by ``-XTypeFamilies`` and ``-XGADTs``."
396 , flagType = DynamicFlag
397 , flagReverse = "-XNoMonoLocalBinds"
398 , flagSince = "6.12.1"
399 }
400 , flag { flagName = "-XNoMonomorphismRestriction"
401 , flagDescription =
402 "Disable the :ref:`monomorphism restriction <monomorphism>`."
403 , flagType = DynamicFlag
404 , flagReverse = "-XMonomorphismRestriction"
405 , flagSince = "6.8.1"
406 }
407 , flag { flagName = "-XMultiParamTypeClasses"
408 , flagDescription =
409 "Enable :ref:`multi parameter type classes "++
410 "<multi-param-type-classes>`. Implied by "++
411 "``-XFunctionalDependencies``."
412 , flagType = DynamicFlag
413 , flagReverse = "-XNoMultiParamTypeClasses"
414 , flagSince = "6.8.1"
415 }
416 , flag { flagName = "-XMultiWayIf"
417 , flagDescription =
418 "Enable :ref:`multi-way if-expressions <multi-way-if>`."
419 , flagType = DynamicFlag
420 , flagReverse = "-XNoMultiWayIf"
421 , flagSince = "7.6.1"
422 }
423 , flag { flagName = "-XNamedFieldPuns"
424 , flagDescription = "Enable :ref:`record puns <record-puns>`."
425 , flagType = DynamicFlag
426 , flagReverse = "-XNoNamedFieldPuns"
427 , flagSince = "6.10.1"
428 }
429 , flag { flagName = "-XNamedWildCards"
430 , flagDescription = "Enable :ref:`named wildcards <named-wildcards>`."
431 , flagType = DynamicFlag
432 , flagReverse = "-XNoNamedWildCards"
433 , flagSince = "7.10.1"
434 }
435 , flag { flagName = "-XNegativeLiterals"
436 , flagDescription =
437 "Enable support for :ref:`negative literals <negative-literals>`."
438 , flagType = DynamicFlag
439 , flagReverse = "-XNoNegativeLiterals"
440 , flagSince = "7.8.1"
441 }
442 , flag { flagName = "-XNoNPlusKPatterns"
443 , flagDescription = "Disable support for ``n+k`` patterns."
444 , flagType = DynamicFlag
445 , flagReverse = "-XNPlusKPatterns"
446 , flagSince = "6.12.1"
447 }
448 , flag { flagName = "-XNullaryTypeClasses"
449 , flagDescription =
450 "Deprecated, does nothing. :ref:`nullary (no parameter) type "++
451 "classes <nullary-type-classes>` are now enabled using "++
452 "``-XMultiParamTypeClasses``."
453 , flagType = DynamicFlag
454 , flagReverse = "-XNoNullaryTypeClasses"
455 , flagSince = "7.8.1"
456 }
457 , flag { flagName = "-XNumDecimals"
458 , flagDescription =
459 "Enable support for 'fractional' integer literals."
460 , flagType = DynamicFlag
461 , flagReverse = "-XNoNumDecimals"
462 , flagSince = "7.8.1"
463 }
464 , flag { flagName = "-XOverlappingInstances"
465 , flagDescription =
466 "Enable :ref:`overlapping instances <instance-overlap>`."
467 , flagType = DynamicFlag
468 , flagReverse = "-XNoOverlappingInstances"
469 , flagSince = "6.8.1"
470 }
471 , flag { flagName = "-XOverloadedLists"
472 , flagDescription =
473 "Enable :ref:`overloaded lists <overloaded-lists>`."
474 , flagType = DynamicFlag
475 , flagReverse = "-XNoOverloadedLists"
476 , flagSince = "7.8.1"
477 }
478 , flag { flagName = "-XOverloadedStrings"
479 , flagDescription =
480 "Enable :ref:`overloaded string literals <overloaded-strings>`."
481 , flagType = DynamicFlag
482 , flagReverse = "-XNoOverloadedStrings"
483 , flagSince = "6.8.1"
484 }
485 , flag { flagName = "-XPackageImports"
486 , flagDescription =
487 "Enable :ref:`package-qualified imports <package-imports>`."
488 , flagType = DynamicFlag
489 , flagReverse = "-XNoPackageImports"
490 , flagSince = "6.10.1"
491 }
492 , flag { flagName = "-XParallelArrays"
493 , flagDescription =
494 "Enable parallel arrays. Implies ``-XParallelListComp``."
495 , flagType = DynamicFlag
496 , flagReverse = "-XNoParallelArrays"
497 , flagSince = "7.4.1"
498 }
499 , flag { flagName = "-XParallelListComp"
500 , flagDescription =
501 "Enable :ref:`parallel list comprehensions "++
502 "<parallel-list-comprehensions>`. "++
503 "Implied by ``-XParallelArrays``."
504 , flagType = DynamicFlag
505 , flagReverse = "-XNoParallelListComp"
506 , flagSince = "6.8.1"
507 }
508 , flag { flagName = "-XPartialTypeSignatures"
509 , flagDescription =
510 "Enable :ref:`partial type signatures <partial-type-signatures>`."
511 , flagType = DynamicFlag
512 , flagReverse = "-XNoPartialTypeSignatures"
513 , flagSince = "7.10.1"
514 }
515 , flag { flagName = "-XPatternGuards"
516 , flagDescription = "Enable :ref:`pattern guards <pattern-guards>`."
517 , flagType = DynamicFlag
518 , flagReverse = "-XNoPatternGuards"
519 , flagSince = "6.8.1"
520 }
521 , flag { flagName = "-XPatternSynonyms"
522 , flagDescription =
523 "Enable :ref:`pattern synonyms <pattern-synonyms>`."
524 , flagType = DynamicFlag
525 , flagReverse = "-XNoPatternSynonyms"
526 , flagSince = "7.10.1"
527 }
528 , flag { flagName = "-XPolyKinds"
529 , flagDescription =
530 "Enable :ref:`kind polymorphism <kind-polymorphism>`. "++
531 "Implies ``-XKindSignatures``."
532 , flagType = DynamicFlag
533 , flagReverse = "-XNoPolyKinds"
534 , flagSince = "7.4.1"
535 }
536 , flag { flagName = "-XPolymorphicComponents"
537 , flagDescription =
538 "Enable :ref:`polymorphic components for data constructors "++
539 "<universal-quantification>`. Synonym for ``-XRankNTypes``."
540 , flagType = DynamicFlag
541 , flagReverse = "-XNoPolymorphicComponents"
542 , flagSince = "6.8.1"
543 }
544 , flag { flagName = "-XPostfixOperators"
545 , flagDescription =
546 "Enable :ref:`postfix operators <postfix-operators>`."
547 , flagType = DynamicFlag
548 , flagReverse = "-XNoPostfixOperators"
549 , flagSince = "7.10.1"
550 }
551 , flag { flagName = "-XQuasiQuotes"
552 , flagDescription = "Enable :ref:`quasiquotation <th-quasiquotation>`."
553 , flagType = DynamicFlag
554 , flagReverse = "-XNoQuasiQuotes"
555 , flagSince = "6.10.1"
556 }
557 , flag { flagName = "-XRank2Types"
558 , flagDescription =
559 "Enable :ref:`rank-2 types <universal-quantification>`. "++
560 "Synonym for ``-XRankNTypes``."
561 , flagType = DynamicFlag
562 , flagReverse = "-XNoRank2Types"
563 , flagSince = "6.8.1"
564 }
565 , flag { flagName = "-XRankNTypes"
566 , flagDescription =
567 "Enable :ref:`rank-N types <universal-quantification>`. "++
568 "Implied by ``-XImpredicativeTypes``."
569 , flagType = DynamicFlag
570 , flagReverse = "-XNoRankNTypes"
571 , flagSince = "6.8.1"
572 }
573 , flag { flagName = "-XRebindableSyntax"
574 , flagDescription =
575 "Employ :ref:`rebindable syntax <rebindable-syntax>`. "++
576 "Implies ``-XNoImplicitPrelude``."
577 , flagType = DynamicFlag
578 , flagReverse = "-XNoRebindableSyntax"
579 , flagSince = "7.0.1"
580 }
581 , flag { flagName = "-XRecordWildCards"
582 , flagDescription =
583 "Enable :ref:`record wildcards <record-wildcards>`. "++
584 "Implies ``-XDisambiguateRecordFields``."
585 , flagType = DynamicFlag
586 , flagReverse = "-XNoRecordWildCards"
587 , flagSince = "6.8.1"
588 }
589 , flag { flagName = "-XRecursiveDo"
590 , flagDescription =
591 "Enable :ref:`recursive do (mdo) notation <recursive-do-notation>`."
592 , flagType = DynamicFlag
593 , flagReverse = "-XNoRecursiveDo"
594 , flagSince = "6.8.1"
595 }
596 , flag { flagName = "-XRelaxedPolyRec"
597 , flagDescription =
598 "*(deprecated)* Relaxed checking for :ref:`mutually-recursive "++
599 "polymorphic functions <typing-binds>`."
600 , flagType = DynamicFlag
601 , flagReverse = "-XNoRelaxedPolyRec"
602 , flagSince = "6.8.1"
603 }
604 , flag { flagName = "-XRoleAnnotations"
605 , flagDescription =
606 "Enable :ref:`role annotations <role-annotations>`."
607 , flagType = DynamicFlag
608 , flagReverse = "-XNoRoleAnnotations"
609 , flagSince = "7.10.1"
610 }
611 , flag { flagName = "-XSafe"
612 , flagDescription =
613 "Enable the :ref:`Safe Haskell <safe-haskell>` Safe mode."
614 , flagType = DynamicFlag
615 , flagSince = "7.2.1"
616 }
617 , flag { flagName = "-XScopedTypeVariables"
618 , flagDescription =
619 "Enable :ref:`lexically-scoped type variables "++
620 "<scoped-type-variables>`."
621 , flagType = DynamicFlag
622 , flagReverse = "-XNoScopedTypeVariables"
623 , flagSince = "6.8.1"
624 }
625 , flag { flagName = "-XStandaloneDeriving"
626 , flagDescription =
627 "Enable :ref:`standalone deriving <stand-alone-deriving>`."
628 , flagType = DynamicFlag
629 , flagReverse = "-XNoStandaloneDeriving"
630 , flagSince = "6.8.1"
631 }
632 , flag { flagName = "-XStrictData"
633 , flagDescription =
634 "Enable :ref:`default strict datatype fields <strict-data>`."
635 , flagType = DynamicFlag
636 , flagReverse = "-XNoStrictData"
637 }
638 , flag { flagName = "-XTemplateHaskell"
639 , flagDescription =
640 "Enable :ref:`Template Haskell <template-haskell>`."
641 , flagType = DynamicFlag
642 , flagReverse = "-XNoTemplateHaskell"
643 , flagSince = "6.8.1"
644 }
645 , flag { flagName = "-XTemplateHaskellQuotes"
646 , flagDescription = "Enable quotation subset of "++
647 ":ref:`Template Haskell <template-haskell>`."
648 , flagType = DynamicFlag
649 , flagReverse = "-XNoTemplateHaskellQuotes"
650 , flagSince = "8.0.1"
651 }
652 , flag { flagName = "-XNoTraditionalRecordSyntax"
653 , flagDescription =
654 "Disable support for traditional record syntax "++
655 "(as supported by Haskell 98) ``C {f = x}``"
656 , flagType = DynamicFlag
657 , flagReverse = "-XTraditionalRecordSyntax"
658 , flagSince = "7.4.1"
659 }
660 , flag { flagName = "-XTransformListComp"
661 , flagDescription =
662 "Enable :ref:`generalised list comprehensions "++
663 "<generalised-list-comprehensions>`."
664 , flagType = DynamicFlag
665 , flagReverse = "-XNoTransformListComp"
666 , flagSince = "6.10.1"
667 }
668 , flag { flagName = "-XTrustworthy"
669 , flagDescription =
670 "Enable the :ref:`Safe Haskell <safe-haskell>` Trustworthy mode."
671 , flagType = DynamicFlag
672 , flagSince = "7.2.1"
673 }
674 , flag { flagName = "-XTupleSections"
675 , flagDescription = "Enable :ref:`tuple sections <tuple-sections>`."
676 , flagType = DynamicFlag
677 , flagReverse = "-XNoTupleSections"
678 , flagSince = "7.10.1"
679 }
680 , flag { flagName = "-XTypeFamilies"
681 , flagDescription =
682 "Enable :ref:`type families <type-families>`. "++
683 "Implies ``-XExplicitNamespaces``, ``-XKindSignatures``, "++
684 "and ``-XMonoLocalBinds``."
685 , flagType = DynamicFlag
686 , flagReverse = "-XNoTypeFamilies"
687 , flagSince = "6.8.1"
688 }
689 , flag { flagName = "-XTypeOperators"
690 , flagDescription =
691 "Enable :ref:`type operators <type-operators>`. "++
692 "Implies ``-XExplicitNamespaces``."
693 , flagType = DynamicFlag
694 , flagReverse = "-XNoTypeOperators"
695 , flagSince = "6.8.1"
696 }
697 , flag { flagName = "-XTypeSynonymInstances"
698 , flagDescription =
699 "Enable :ref:`type synonyms in instance heads "++
700 "<flexible-instance-head>`. Implied by ``-XFlexibleInstances``."
701 , flagType = DynamicFlag
702 , flagReverse = "-XNoTypeSynonymInstances"
703 , flagSince = "6.8.1"
704 }
705 , flag { flagName = "-XUnboxedTuples"
706 , flagDescription = "Enable :ref:`unboxed tuples <unboxed-tuples>`."
707 , flagType = DynamicFlag
708 , flagReverse = "-XNoUnboxedTuples"
709 , flagSince = "6.8.1"
710 }
711 , flag { flagName = "-XUndecidableInstances"
712 , flagDescription =
713 "Enable :ref:`undecidable instances <undecidable-instances>`."
714 , flagType = DynamicFlag
715 , flagReverse = "-XNoUndecidableInstances"
716 , flagSince = "6.8.1"
717 }
718 , flag { flagName = "-XUnicodeSyntax"
719 , flagDescription = "Enable :ref:`unicode syntax <unicode-syntax>`."
720 , flagType = DynamicFlag
721 , flagReverse = "-XNoUnicodeSyntax"
722 , flagSince = "6.8.1"
723 }
724 , flag { flagName = "-XUnliftedFFITypes"
725 , flagDescription = "Enable unlifted FFI types."
726 , flagType = DynamicFlag
727 , flagReverse = "-XNoUnliftedFFITypes"
728 , flagSince = "6.8.1"
729 }
730 , flag { flagName = "-XUnsafe"
731 , flagDescription =
732 "Enable :ref:`Safe Haskell <safe-haskell>` Unsafe mode."
733 , flagType = DynamicFlag
734 , flagSince = "7.4.1"
735 }
736 , flag { flagName = "-XViewPatterns"
737 , flagDescription = "Enable :ref:`view patterns <view-patterns>`."
738 , flagType = DynamicFlag
739 , flagReverse = "-XNoViewPatterns"
740 , flagSince = "6.10.1"
741 }
742 ]