{-# LANGUAGE CPP #-}
module Language.Haskell.Meta.Extensions (
toExtension,
fromExtension
) where
import qualified Language.Haskell.Exts.Extension as Exts
import qualified Language.Haskell.TH.Syntax as TH
toExtension :: Exts.KnownExtension -> Maybe TH.Extension
toExtension :: KnownExtension -> Maybe Extension
toExtension e :: KnownExtension
e = case KnownExtension
e of
Exts.OverlappingInstances -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.OverlappingInstances
Exts.UndecidableInstances -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.UndecidableInstances
Exts.IncoherentInstances -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.IncoherentInstances
Exts.InstanceSigs -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.InstanceSigs
Exts.DoRec -> Maybe Extension
forall a. Maybe a
Nothing
Exts.RecursiveDo -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.RecursiveDo
Exts.ParallelListComp -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.ParallelListComp
Exts.MultiParamTypeClasses -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.MultiParamTypeClasses
Exts.MonomorphismRestriction -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.MonomorphismRestriction
Exts.FunctionalDependencies -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.FunctionalDependencies
Exts.Rank2Types -> Maybe Extension
forall a. Maybe a
Nothing
Exts.RankNTypes -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.RankNTypes
Exts.PolymorphicComponents -> Maybe Extension
forall a. Maybe a
Nothing
Exts.ExistentialQuantification -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.ExistentialQuantification
Exts.ScopedTypeVariables -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.ScopedTypeVariables
Exts.PatternSignatures -> Maybe Extension
forall a. Maybe a
Nothing
Exts.ImplicitParams -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.ImplicitParams
Exts.FlexibleContexts -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.FlexibleContexts
Exts.FlexibleInstances -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.FlexibleInstances
Exts.EmptyDataDecls -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.EmptyDataDecls
Exts.CPP -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.Cpp
Exts.KindSignatures -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.KindSignatures
Exts.BangPatterns -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.BangPatterns
Exts.TypeSynonymInstances -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.TypeSynonymInstances
Exts.TemplateHaskell -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.TemplateHaskell
Exts.ForeignFunctionInterface -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.ForeignFunctionInterface
Exts.Arrows -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.Arrows
Exts.Generics -> Maybe Extension
forall a. Maybe a
Nothing
Exts.ImplicitPrelude -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.ImplicitPrelude
Exts.NamedFieldPuns -> Maybe Extension
forall a. Maybe a
Nothing
Exts.PatternGuards -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.PatternGuards
Exts.GeneralizedNewtypeDeriving -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.GeneralizedNewtypeDeriving
Exts.DeriveAnyClass -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.DeriveAnyClass
Exts.ExtensibleRecords -> Maybe Extension
forall a. Maybe a
Nothing
Exts.RestrictedTypeSynonyms -> Maybe Extension
forall a. Maybe a
Nothing
Exts.HereDocuments -> Maybe Extension
forall a. Maybe a
Nothing
Exts.MagicHash -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.MagicHash
Exts.BinaryLiterals -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.BinaryLiterals
Exts.TypeFamilies -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.TypeFamilies
Exts.StandaloneDeriving -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.StandaloneDeriving
Exts.UnicodeSyntax -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.UnicodeSyntax
Exts.UnliftedFFITypes -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.UnliftedFFITypes
Exts.LiberalTypeSynonyms -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.LiberalTypeSynonyms
Exts.TypeOperators -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.TypeOperators
Exts.ParallelArrays -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.ParallelArrays
Exts.RecordWildCards -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.RecordWildCards
#if __GLASGOW_HASKELL__ >= 904
Exts.RecordPuns -> Just TH.NamedFieldPuns
#else
Exts.RecordPuns -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.RecordPuns
#endif
Exts.DisambiguateRecordFields -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.DisambiguateRecordFields
Exts.OverloadedStrings -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.OverloadedStrings
Exts.GADTs -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.GADTs
Exts.MonoPatBinds ->
#if !MIN_VERSION_template_haskell(2,18,0)
Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.MonoPatBinds
#else
Nothing
#endif
Exts.RelaxedPolyRec -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.RelaxedPolyRec
Exts.ExtendedDefaultRules -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.ExtendedDefaultRules
Exts.UnboxedTuples -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.UnboxedTuples
Exts.DeriveDataTypeable -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.DeriveDataTypeable
Exts.ConstrainedClassMethods -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.ConstrainedClassMethods
Exts.PackageImports -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.PackageImports
Exts.LambdaCase -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.LambdaCase
Exts.EmptyCase -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.EmptyCase
Exts.ImpredicativeTypes -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.ImpredicativeTypes
Exts.NewQualifiedOperators -> Maybe Extension
forall a. Maybe a
Nothing
Exts.PostfixOperators -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.PostfixOperators
Exts.QuasiQuotes -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.QuasiQuotes
Exts.TransformListComp -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.TransformListComp
Exts.ViewPatterns -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.ViewPatterns
Exts.XmlSyntax -> Maybe Extension
forall a. Maybe a
Nothing
Exts.RegularPatterns -> Maybe Extension
forall a. Maybe a
Nothing
Exts.TupleSections -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.TupleSections
Exts.GHCForeignImportPrim -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.GHCForeignImportPrim
Exts.NPlusKPatterns -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.NPlusKPatterns
Exts.DoAndIfThenElse -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.DoAndIfThenElse
Exts.RebindableSyntax -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.RebindableSyntax
Exts.ExplicitForAll -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.ExplicitForAll
Exts.DatatypeContexts -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.DatatypeContexts
Exts.MonoLocalBinds -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.MonoLocalBinds
Exts.DeriveFunctor -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.DeriveFunctor
Exts.DeriveGeneric -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.DeriveGeneric
Exts.DeriveTraversable -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.DeriveTraversable
Exts.DeriveFoldable -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.DeriveFoldable
Exts.NondecreasingIndentation -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.NondecreasingIndentation
Exts.InterruptibleFFI -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.InterruptibleFFI
Exts.CApiFFI -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.CApiFFI
Exts.JavaScriptFFI -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.JavaScriptFFI
Exts.ExplicitNamespaces -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.ExplicitNamespaces
Exts.DataKinds -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.DataKinds
Exts.PolyKinds -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.PolyKinds
Exts.MultiWayIf -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.MultiWayIf
Exts.SafeImports -> Maybe Extension
forall a. Maybe a
Nothing
Exts.Safe -> Maybe Extension
forall a. Maybe a
Nothing
Exts.Trustworthy -> Maybe Extension
forall a. Maybe a
Nothing
Exts.DefaultSignatures -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.DefaultSignatures
Exts.ConstraintKinds -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.ConstraintKinds
Exts.RoleAnnotations -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.RoleAnnotations
Exts.PatternSynonyms -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.PatternSynonyms
Exts.PartialTypeSignatures -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.PartialTypeSignatures
Exts.NamedWildCards -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.NamedWildCards
Exts.TypeApplications -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.TypeApplications
Exts.TypeFamilyDependencies -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.TypeFamilyDependencies
Exts.OverloadedLabels -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.OverloadedLabels
Exts.DerivingStrategies -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.DerivingStrategies
Exts.UnboxedSums -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.UnboxedSums
#if MIN_VERSION_haskell_src_exts(1,21,0)
Exts.TypeInType -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.TypeInType
#endif
Exts.Strict -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.Strict
Exts.StrictData -> Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.StrictData
#if MIN_VERSION_haskell_src_exts(1,21,0)
Exts.DerivingVia ->
#if MIN_VERSION_template_haskell(2,14,0)
Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.DerivingVia
#else
Nothing
#endif
#endif
#if MIN_VERSION_haskell_src_exts(1,22,0)
Exts.QuantifiedConstraints ->
#if MIN_VERSION_template_haskell(2,14,0)
Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.QuantifiedConstraints
#else
Nothing
#endif
#endif
#if MIN_VERSION_haskell_src_exts(1,23,0)
Exts.BlockArguments ->
#if MIN_VERSION_template_haskell(2,14,0)
Extension -> Maybe Extension
forall a. a -> Maybe a
Just Extension
TH.BlockArguments
#else
Nothing
#endif
#endif
fromExtension :: TH.Extension -> Maybe Exts.KnownExtension
fromExtension :: Extension -> Maybe KnownExtension
fromExtension e :: Extension
e = case Extension
e of
TH.Cpp -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.CPP
TH.OverlappingInstances -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.OverlappingInstances
TH.UndecidableInstances -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.UndecidableInstances
TH.IncoherentInstances -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.IncoherentInstances
TH.UndecidableSuperClasses -> Maybe KnownExtension
forall a. Maybe a
Nothing
TH.MonomorphismRestriction -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.MonomorphismRestriction
#if !MIN_VERSION_template_haskell(2,18,0)
TH.MonoPatBinds -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.MonoPatBinds
#endif
TH.MonoLocalBinds -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.MonoLocalBinds
TH.RelaxedPolyRec -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.RelaxedPolyRec
TH.ExtendedDefaultRules -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.ExtendedDefaultRules
TH.ForeignFunctionInterface -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.ForeignFunctionInterface
TH.UnliftedFFITypes -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.UnliftedFFITypes
TH.InterruptibleFFI -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.InterruptibleFFI
TH.CApiFFI -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.CApiFFI
TH.GHCForeignImportPrim -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.GHCForeignImportPrim
TH.JavaScriptFFI -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.JavaScriptFFI
TH.ParallelArrays -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.ParallelArrays
TH.Arrows -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.Arrows
TH.TemplateHaskell -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.TemplateHaskell
TH.TemplateHaskellQuotes -> Maybe KnownExtension
forall a. Maybe a
Nothing
TH.QuasiQuotes -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.QuasiQuotes
TH.ImplicitParams -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.ImplicitParams
TH.ImplicitPrelude -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.ImplicitPrelude
TH.ScopedTypeVariables -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.ScopedTypeVariables
TH.AllowAmbiguousTypes -> Maybe KnownExtension
forall a. Maybe a
Nothing
TH.UnboxedTuples -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.UnboxedTuples
TH.UnboxedSums -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.UnboxedSums
TH.BangPatterns -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.BangPatterns
TH.TypeFamilies -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.TypeFamilies
TH.TypeFamilyDependencies -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.TypeFamilyDependencies
TH.TypeInType ->
#if MIN_VERSION_haskell_src_exts(1,21,0)
KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.TypeInType
#else
Nothing
#endif
TH.OverloadedStrings -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.OverloadedStrings
TH.OverloadedLists -> Maybe KnownExtension
forall a. Maybe a
Nothing
TH.NumDecimals -> Maybe KnownExtension
forall a. Maybe a
Nothing
TH.DisambiguateRecordFields -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.DisambiguateRecordFields
TH.RecordWildCards -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.RecordWildCards
#if __GLASGOW_HASKELL__ >= 904
TH.NamedFieldPuns -> Just Exts.RecordPuns
TH.QualifiedDo -> Nothing
TH.UnliftedDatatypes -> Nothing
TH.LinearTypes -> Nothing
TH.LexicalNegation -> Nothing
TH.FieldSelectors -> Nothing
TH.OverloadedRecordDot -> Nothing
TH.OverloadedRecordUpdate -> Nothing
#else
TH.RecordPuns -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.RecordPuns
#endif
TH.ViewPatterns -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.ViewPatterns
TH.GADTs -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.GADTs
TH.GADTSyntax -> Maybe KnownExtension
forall a. Maybe a
Nothing
TH.NPlusKPatterns -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.NPlusKPatterns
TH.DoAndIfThenElse -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.DoAndIfThenElse
TH.RebindableSyntax -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.RebindableSyntax
TH.ConstraintKinds -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.ConstraintKinds
TH.PolyKinds -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.PolyKinds
TH.DataKinds -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.DataKinds
TH.InstanceSigs -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.InstanceSigs
TH.ApplicativeDo -> Maybe KnownExtension
forall a. Maybe a
Nothing
TH.StandaloneDeriving -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.StandaloneDeriving
TH.DeriveDataTypeable -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.DeriveDataTypeable
TH.AutoDeriveTypeable -> Maybe KnownExtension
forall a. Maybe a
Nothing
TH.DeriveFunctor -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.DeriveFunctor
TH.DeriveTraversable -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.DeriveTraversable
TH.DeriveFoldable -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.DeriveFoldable
TH.DeriveGeneric -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.DeriveGeneric
TH.DefaultSignatures -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.DefaultSignatures
TH.DeriveAnyClass -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.DeriveAnyClass
TH.DeriveLift -> Maybe KnownExtension
forall a. Maybe a
Nothing
TH.DerivingStrategies -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.DerivingStrategies
TH.TypeSynonymInstances -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.TypeSynonymInstances
TH.FlexibleContexts -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.FlexibleContexts
TH.FlexibleInstances -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.FlexibleInstances
TH.ConstrainedClassMethods -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.ConstrainedClassMethods
TH.MultiParamTypeClasses -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.MultiParamTypeClasses
TH.NullaryTypeClasses -> Maybe KnownExtension
forall a. Maybe a
Nothing
TH.FunctionalDependencies -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.FunctionalDependencies
TH.UnicodeSyntax -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.UnicodeSyntax
TH.ExistentialQuantification -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.ExistentialQuantification
TH.MagicHash -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.MagicHash
TH.EmptyDataDecls -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.EmptyDataDecls
TH.KindSignatures -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.KindSignatures
TH.RoleAnnotations -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.RoleAnnotations
TH.ParallelListComp -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.ParallelListComp
TH.TransformListComp -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.TransformListComp
TH.MonadComprehensions -> Maybe KnownExtension
forall a. Maybe a
Nothing
TH.GeneralizedNewtypeDeriving -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.GeneralizedNewtypeDeriving
TH.RecursiveDo -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.RecursiveDo
TH.PostfixOperators -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.PostfixOperators
TH.TupleSections -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.TupleSections
TH.PatternGuards -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.PatternGuards
TH.LiberalTypeSynonyms -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.LiberalTypeSynonyms
TH.RankNTypes -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.RankNTypes
TH.ImpredicativeTypes -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.ImpredicativeTypes
TH.TypeOperators -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.TypeOperators
TH.ExplicitNamespaces -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.ExplicitNamespaces
TH.PackageImports -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.PackageImports
TH.ExplicitForAll -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.ExplicitForAll
TH.AlternativeLayoutRule -> Maybe KnownExtension
forall a. Maybe a
Nothing
TH.AlternativeLayoutRuleTransitional -> Maybe KnownExtension
forall a. Maybe a
Nothing
TH.DatatypeContexts -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.DatatypeContexts
TH.NondecreasingIndentation -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.NondecreasingIndentation
TH.RelaxedLayout -> Maybe KnownExtension
forall a. Maybe a
Nothing
TH.TraditionalRecordSyntax -> Maybe KnownExtension
forall a. Maybe a
Nothing
TH.LambdaCase -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.LambdaCase
TH.MultiWayIf -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.MultiWayIf
TH.BinaryLiterals -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.BinaryLiterals
TH.NegativeLiterals -> Maybe KnownExtension
forall a. Maybe a
Nothing
TH.DuplicateRecordFields -> Maybe KnownExtension
forall a. Maybe a
Nothing
TH.OverloadedLabels -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.OverloadedLabels
TH.EmptyCase -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.EmptyCase
TH.PatternSynonyms -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.PatternSynonyms
TH.PartialTypeSignatures -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.PartialTypeSignatures
TH.NamedWildCards -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.NamedWildCards
TH.StaticPointers -> Maybe KnownExtension
forall a. Maybe a
Nothing
TH.TypeApplications -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.TypeApplications
TH.Strict -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.Strict
TH.StrictData -> KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.StrictData
#if !MIN_VERSION_template_haskell(2,18,0)
TH.MonadFailDesugaring -> Maybe KnownExtension
forall a. Maybe a
Nothing
#endif
#if MIN_VERSION_template_haskell(2,13,0)
TH.HexFloatLiterals -> Maybe KnownExtension
forall a. Maybe a
Nothing
TH.EmptyDataDeriving -> Maybe KnownExtension
forall a. Maybe a
Nothing
#endif
#if MIN_VERSION_template_haskell(2,14,0)
TH.DerivingVia ->
#if MIN_VERSION_haskell_src_exts(1,21,0)
KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.DerivingVia
#else
Nothing
#endif
TH.QuantifiedConstraints ->
#if MIN_VERSION_haskell_src_exts(1,22,0)
KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.QuantifiedConstraints
#else
Nothing
#endif
TH.BlockArguments ->
#if MIN_VERSION_haskell_src_exts(1,23,0)
KnownExtension -> Maybe KnownExtension
forall a. a -> Maybe a
Just KnownExtension
Exts.BlockArguments
#else
Nothing
#endif
TH.NumericUnderscores -> Maybe KnownExtension
forall a. Maybe a
Nothing
TH.StarIsType -> Maybe KnownExtension
forall a. Maybe a
Nothing
#endif
#if MIN_VERSION_template_haskell(2,16,0)
TH.UnliftedNewtypes -> Nothing
TH.ImportQualifiedPost -> Nothing
TH.CUSKs -> Nothing
TH.StandaloneKindSignatures -> Nothing
#endif
#if MIN_VERSION_template_haskell(2,19,0)
TH.DeepSubsumption -> Nothing
#endif