| Version 43 (modified by ijones, 7 years ago) |
|---|
Known Haskell Extensions
Links
- Please see the explanation and template for writing descriptions of these extensions.
- ExtensionsExperiment is a summary of experiments run on the hackage libraries.
- 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 | Tickets |
| AssociatedTypes | False | False | False | False | #14, #90 |
| ClassAliases? | False | False | False | False | No results |
| CoinductiveDictionaries? | ? | False | False | False | No results |
| ContextStack? | True | False | False | False | No results |
| DataKinds? | False | False | False | False | No results |
| DoAndIfThenElse | False | False | False | False | #23 |
| DottedHierarchicalModules | False | False | False | True | No results |
| EmptyDataDecls | True | True | True | True | #25 |
| ExistentialQuantification | True | True | True | False | #26 |
| ExplicitDictionaries? | False | False | False | False | No results |
| ExtensibleRecords? | False | False | True | False | No results |
| 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, #90 |
| HereDocuments? | False | False | True | False | No results |
| HierarchicalModules | True | True | True | True | #24 |
| ImplicitParams | True | False | True | False | #38 |
| IncoherentInstances | True | False | True | False | #40, #54 |
| InfixTypeConstructors | True | False | False | True | #78 |
| InlinePhase? | True | False | False | False | No results |
| KindAnnotations | True | False | False | True | #84 |
| KindPolymorphism? | False | False | False | False | No results |
| LambdaCase | False | False | False | False | #41 |
| LiberalTypeSynonyms | True | False | False | True | #102 |
| LinearImplicitParams | True | False | False | False | #43 |
| MagicUnderscore | False | False | False | True | #44 |
| MultiParamTypeClasses | True | False | True | False | #49, #90 |
| MultiWayIf | False | False | False | False | #41, #77 |
| NamedFieldPuns? | False | True | False | False | #136 |
| NewtypeDeriving | True | False | False | True | #22, #52 |
| NoImplicitPrelude? | True | False | False | True | No results |
| NoMonomorphismRestriction | True | True | False | True | #131 #80, #131 |
| NondecreasingIndentation | True | ? | True | ? | #53 |
| OverlappingInstances | True | False | True | False | #54 |
| ParallelListComp | True | False | True | False | #55 |
| PartialTypeSigs | False | False | False | False | #40 |
| PatternGuards | True | False | False | False | #56 |
| PolymorphicComponents | True | False | True | False | #57 |
| RebindableSyntax? | True | False | False | Some | No results |
| RecursiveDo | True | False | True | False | #64 |
| RecursiveModules? | Partial | Partial | False | True | No results |
| RestrictedTypeSynonyms? | False | False | True | False | No results |
| RewriteRules? | True | False | False | Int | No results |
| ScopedTypeVariables | True | False | True | False | #67, #81 |
| TemplateHaskell? | True | False | False | False | No results |
| TypeSynonymInstances | True | False | True | True | #70 |
| UnboxedTypes? | True | False | False | Int | No results |
| UndecidableInstances | True | False | False | False | #71 |
| Views | False | False | False | False | #73, #114 |
| Arrows | True | False | False | False | #13 |
| Assertions? | True | ? | False | True | #107 |
| Concurrency | True | False | Coop | Poor | #74 |
| CPP? | True | True | True | True | No results |
| GADTs | True | False | False | False | #37 |
| Generics? | True | False | False | False | #88 |
| Impredicativity? | ? | False | False | False | #87 |
| Rank2Types | True | False | True | False | #60 |
| RankNTypes | True | False | False | False | #60 |
| AllowImportAnywhere | False | False | False | False | #82 |
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 |
