| Version 37 (modified by ross@…, 7 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)
- Results of John Hughes' Haskell survey (also lists many extensions)
Support Matrix
| Extension Name | GHC | NHC | HUGS | JHC | Ticket |
| AssociatedTypes | False | False | False | False | #14 |
| ClassAliases? | False | False | False | False | none! |
| CoinductiveDictionaries? | ? | False | False | False | none! |
| ContextStack? | True | False | False | False | none! |
| DataKinds? | False | False | False | False | none! |
| DoAndIfThenElse | False | False | False | False | #23 |
| DottedHierarchicalModules | False | False | False | True | none! |
| EmptyDataDecls | True | True | True | True | #25 |
| ExistentialQuantification | True | True | True | False | #26 |
| ExplicitDictionaries? | False | False | False | False | none! |
| ExtensibleRecords? | False | False | True | False | #27 |
| FlexibleContexts | True | False | True | ? | #31 |
| FlexibleInstances | True | False | True | ? | #32 |
| ForeignData | False | False | False | True | #34 |
| ForeignFunctionInterface | True | True | True | True | #35 |
| FunctionalDependencies | True | False | True | False | #36 |
| HereDocuments? | False | False | True | False | none! |
| HierarchicalModules | True | True | True | True | #24 |
| ImplicitParams | True | False | True | False | #38 |
| IncoherentInstances | True | False | True | False | #54 |
| InfixTypeConstructors | True | False | False | True | #78 |
| InlinePhase? | True | False | False | False | none! |
| KindAnnotations | True | False | False | True | none! |
| KindPolymorphism? | False | False | False | False | none! |
| LambdaCase | False | False | False | False | #41 |
| LiberalTypeSynonyms | True | False | False | True | none! |
| LinearImplicitParams | True | False | False | False | #43 |
| MagicUnderscore | False | False | False | True | #44 |
| MultiParamTypeClasses | True | False | True | False | #49 |
| MultiWayIf | False | False | False | False | #77 |
| NamedFieldPuns? | False | True | False | False | none! |
| NewtypeDeriving | True | False | False | True | #52 |
| NoImplicitPrelude? | True | False | False | True | none! |
| NoMonomorphismRestriction | True | True | False | True | none! |
| NondecreasingIndentation | True | ? | True | ? | #53 |
| OverlappingInstances | True | False | True | False | #54 |
| ParallelListComp | True | False | True | False | #55 |
| PartialTypeSigs | False | False | False | False | none! |
| PatternGuards | True | False | False | False | #56 |
| PolymorphicComponents | True | False | True | False | #57 |
| RebindableSyntax? | True | False | False | Some | none! |
| RecursiveDo | True | False | True | False | #64 |
| RecursiveModules? | Partial | Partial | False | True | none! |
| RestrictedTypeSynonyms? | False | False | True | False | none! |
| RewriteRules? | True | False | False | Int | none! |
| ScopedTypeVariables | True | False | True | False | #67 |
| TemplateHaskell? | True | False | False | False | none! |
| TypeSynonymInstances | True | False | True | True | #70 |
| UnboxedTypes? | True | False | False | Int | none! |
| UndecidableInstances | True | False | False | False | #71 |
| Views | False | False | False | False | #73 |
| Arrows | True | False | False | False | #13 |
| Assertions? | True | ? | False | True | none! |
| Concurrency | True | False | Coop | Poor | #74 |
| CPP? | True | True | True | True | none! |
| GADTs | True | False | False | False | #37 |
| Generics? | True | False | False | False | none! |
| Impredicativity? | ? | False | False | False | none! |
| Rank2Types | True | False | True | False | #60 |
| RankNTypes | True | False | False | False | #60 |
Extensions supported by two compilers
- HierarchicalModules
- ForeignFunctionInterface
- RecursiveDo
- ParallelListComp
- ScopedTypeVariables
- PolymorphicComponents
- Rank2Types
- ExistentialQuantification
- ImplicitParams
- EmptyDataDecls
- NoMonomorphismRestriction
- NondecreasingIndentation
- FlexibleContexts
- FlexibleInstances
- TypeSynonymInstances
- MultiParamTypeClasses
- OverlappingInstances
- IncoherentInstances
- FunctionalDependencies
- CPP
- O'Haskell
Extensions used in fptools
| Those mentioned in library .cabal files | |
| CPP | 11 libraries |
| ForeignFunctionInterface | 4 |
| MultiParamTypeClasses | 3 |
| OverlappingInstances | 1 |
| FunctionalDependencies | 1 |
| Additional extensions mentioned in source file "Portability" field | |
| Concurrency | 3 libraries |
| Local universal quantification | 3 |
| Extended exceptions | >1 |
| Existentially quantified data constructors | 1 |
| STM | 1 |
