| haskell-src-exts-1.9.0: Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer | Source code | Contents | Index

Language.Haskell.Exts.Extension

Portability | portable
Stability | transient
Maintainer | Niklas Broberg, d00nibro@chalmers.se

Contents

Extensions
Extension groups

Description
This entire module should be replaced with Language.Haskell.Extension from cabal, but we must wait for a release of cabal that includes the `XmlSyntax` and `RegularPatterns` extensions.
Synopsis

data Extension

= OverlappingInstances
| UndecidableInstances
| IncoherentInstances
| RecursiveDo
| ParallelListComp
| MultiParamTypeClasses
| NoMonomorphismRestriction
| FunctionalDependencies
| ExplicitForall
| Rank2Types
| RankNTypes
| PolymorphicComponents
| ExistentialQuantification
| ScopedTypeVariables
| ImplicitParams
| FlexibleContexts
| FlexibleInstances
| EmptyDataDecls
| CPP
| KindSignatures
| BangPatterns
| TypeSynonymInstances
| TemplateHaskell
| ForeignFunctionInterface
| Arrows
| Generics
| NoImplicitPrelude
| NamedFieldPuns
| PatternGuards
| GeneralizedNewtypeDeriving
| ExtensibleRecords
| RestrictedTypeSynonyms
| HereDocuments
| MagicHash
| TypeFamilies
| StandaloneDeriving
| UnicodeSyntax
| PatternSignatures
| UnliftedFFITypes
| LiberalTypeSynonyms
| TypeOperators
| RecordWildCards
| RecordPuns
| DisambiguateRecordFields
| OverloadedStrings
| GADTs
| MonoPatBinds
| NoMonoPatBinds
| RelaxedPolyRec
| ExtendedDefaultRules
| UnboxedTuples
| DeriveDataTypeable
| ConstrainedClassMethods
| PackageImports
| ImpredicativeTypes
| NewQualifiedOperators
| PostfixOperators
| QuasiQuotes
| TransformListComp
| ViewPatterns
| XmlSyntax
| RegularPatterns
| TupleSections
| UnknownExtension String

classifyExtension :: String -> Extension
impliesExts :: [Extension] -> [Extension]
glasgowExts :: [Extension]
knownExtensions :: [Extension]

Extensions

data Extension | Source

This datatype is a copy of the one in Cabal's Language.Haskell.Extension module. The intention is to eventually import it from Cabal, but we need to wait for the next release of Cabal which includes XmlSyntax and RegularPatterns.
Constructors

OverlappingInstances |
UndecidableInstances |
IncoherentInstances |
RecursiveDo |
ParallelListComp |
MultiParamTypeClasses |
NoMonomorphismRestriction |
FunctionalDependencies |
ExplicitForall |
Rank2Types |
RankNTypes |
PolymorphicComponents |
ExistentialQuantification |
ScopedTypeVariables |
ImplicitParams |
FlexibleContexts |
FlexibleInstances |
EmptyDataDecls |
CPP |
KindSignatures |
BangPatterns |
TypeSynonymInstances |
TemplateHaskell |
ForeignFunctionInterface |
Arrows |
Generics |
NoImplicitPrelude |
NamedFieldPuns |
PatternGuards |
GeneralizedNewtypeDeriving |
ExtensibleRecords |
RestrictedTypeSynonyms |
HereDocuments |
MagicHash |
TypeFamilies |
StandaloneDeriving |
UnicodeSyntax |
PatternSignatures |
UnliftedFFITypes |
LiberalTypeSynonyms |
TypeOperators |
RecordWildCards |
RecordPuns |
DisambiguateRecordFields |
OverloadedStrings |
GADTs |
MonoPatBinds |
NoMonoPatBinds |
RelaxedPolyRec |
ExtendedDefaultRules |
UnboxedTuples |
DeriveDataTypeable |
ConstrainedClassMethods |
PackageImports |
ImpredicativeTypes |
NewQualifiedOperators |
PostfixOperators |
QuasiQuotes |
TransformListComp |
ViewPatterns |
XmlSyntax |
RegularPatterns |
TupleSections |
UnknownExtension String |

Instances

Eq Extension
Ord Extension
Read Extension
Show Extension
Enabled Extension

classifyExtension :: String -> Extension | Source

A clever version of read that returns an `UnknownExtension` if the string is not recognised.

impliesExts :: [Extension] -> [Extension] | Source

Certain extensions imply other extensions, and this function makes the implication explicit. This also handles deprecated extensions, which imply their replacements. The returned valued is the transitive closure of implied extensions.
Extension groups

glasgowExts :: [Extension] | Source

The list of extensions enabled by GHC's portmanteau -fglasgow-exts flag.

knownExtensions :: [Extension] | Source

List of all known extensions. Poor man's `Enum` instance (we can't enum with the `UnknownExtension` constructor).
Produced by Haddock version 2.4.2