| Version 14 (modified by ross@…, 8 years ago) |
|---|
Known Haskell Extensions
Links
- Please see the explanation and template for writing descriptions of these extensions.
- Cabal extension list
- GHC extension related options
- [source:/ExtensionTables.hs Script] to generate the original tables
- GHC survey results (including a large list of Haskell extensions)
Support Matrix
| Extension Name | GHC | NHC | HUGS | JHC |
| ForeignFunctionInterface | True | True | True | True |
| RecursiveDo | True | False | True | |
| ParallelListComp | True | False | True | |
| PatternGuards | True | False | False | |
| Arrows | True | False | False | |
| ScopedTypeVariables | True | False | True | |
| PolymorphicComponents | True | False | True | |
| Rank2Types | True | False | True | |
| RankNTypes | True | False | False | |
| ExistentialQuantification | True | True | True | |
| NewtypeDeriving | True | False | False | |
| ImplicitParams | True | False | True | |
| LinearImplicitParams | True | False | False | |
| EmptyDataDecls | True | True | True | True |
| NoMonomorphismRestriction | True | True | False | |
| FlexibleContexts | True | False | True | |
| FlexibleInstances | True | False | True | |
| TypeSynonymInstances | True | False | True | True |
| MultiParamTypeClasses | True | False | True | |
| OverlappingInstances | True | False | True | |
| IncoherentInstances | True | False | True | |
| UndecidableInstances | True | False | False | |
| FunctionalDependencies | True | False | True | |
| CPP? | True | True | True | |
| TemplateHaskell? | True | False | False | |
| InlinePhase? | True | False | False | |
| ContextStack? | True | False | False | |
| Generics? | True | False | False | |
| NoImplicitPrelude? | True | False | False | |
| NamedFieldPuns? | False | True | False | |
| ExtensibleRecords? | False | False | True | |
| RestrictedTypeSynonyms? | False | False | True | |
| HereDocuments? | False | False | True | |
| Assertions | True | ? | False | |
| Concurrency | True | False | Coop | |
| KindAnnotations | True | False | False | |
| GADTs | True | False | False | |
| InfixTypeConstructors | True | False | False | |
| LiberalTypeSynonyms | True | False | False | |
| RebindableSyntax? | True | False | False | |
| RecursiveModules? | Partial | ? | False | True |
| RewriteRules? | True | False | False | |
| UnboxedTypes? | True | False | False | |
| CoinductiveDictionaries? | ? | False | False | |
| PartialTypeSigs | False | False | False | |
| Impredicativity | ? | False | False | |
| ExplicitDictionaries? | False | False | False | |
| KindPolymorphism? | False | False | False | |
| DataKinds? | False | False | False | |
| MagicUnderscore | False | False | False | True |
| NondecreasingIndentation | Partial | ? | False | ? |
| Class Aliases | False | False | False | ? |
Extensions supported by two compilers
- ForeignFunctionInterface
- RecursiveDo
- ParallelListComp
- ScopedTypeVariables
- PolymorphicComponents
- Rank2Types
- ExistentialQuantification
- ImplicitParams
- EmptyDataDecls
- NoMonomorphismRestriction
- FlexibleContexts
- FlexibleInstances
- TypeSynonymInstances
- MultiParamTypeClasses
- OverlappingInstances
- IncoherentInstances
- FunctionalDependencies
- CPP
