Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>I think a more appropriate categorization would be to divide it up by the compiler pipeline:</p> <p><strong>Syntactic extensions</strong></p> <ul> <li>-XMagicHash</li> <li>-XUnicodeSyntax </li> <li>-XNewQualifiedOperators</li> <li>-XViewPatterns</li> <li>-XNPlusKPatterns </li> <li>-XDoRec</li> <li>-XTransformListComp</li> <li>-XNoImplicitPrelude</li> <li>-XPostfixOperators</li> <li>-XTupleSections </li> <li>-XDisambiguateRecordFields</li> <li>-XNamedFieldPuns</li> <li>-XRecordWildCards</li> <li>-XPackageImports</li> <li>-XExplicitForAll</li> <li>-XKindSignatures</li> <li>...</li> </ul> <p><strong>Type System Extensions</strong></p> <ul> <li>-XUnboxedTuples</li> <li>-XLiberalTypeSynonyms</li> <li>-XGADTs</li> <li>-XMultiParamTypeClasses</li> <li>-XFlexibleContexts</li> <li>-XConstrainedClassMethods</li> <li>-XOverlappingInstances and -XIncoherentInstances</li> <li>-XTypeFamilies</li> <li>-XImplicitParams</li> </ul> <p><strong>Cross-cutting extensions</strong></p> <ul> <li>-XTemplateHaskell</li> <li>-XForeignFunctionInterface</li> </ul> <p><strong>Optimizatsions</strong></p> <ul> <li>-fenable-rewrite-rules</li> <li>-fspec-constr</li> <li>-O2</li> </ul> <p><strong>Code Generation Extensions</strong></p> <ul> <li>-fllvm</li> <li>-fasm</li> <li>-fvia-C</li> </ul> <p><strong>Runtime Extensions</strong></p> <ul> <li>-threaded</li> </ul> <p>What do you think? Not every flag is either (a) definable in terms of existing constructions, or (b) a new part of the compiler. It's more subtle.</p> <p>There are many other extensions too, see if you can classify them in this form.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload