module PyF.Internal.Extensions
( thExtToMetaExt
) where
import qualified Language.Haskell.Exts.Extension as Exts
import qualified Language.Haskell.TH as TH
thExtToMetaExt :: TH.Extension -> Maybe Exts.Extension
thExtToMetaExt e = Exts.EnableExtension <$> case e of
TH.Cpp -> Just Exts.CPP
TH.OverlappingInstances -> Just Exts.OverlappingInstances
TH.UndecidableInstances -> Just Exts.UndecidableInstances
TH.IncoherentInstances -> Just Exts.IncoherentInstances
TH.MonomorphismRestriction -> Just Exts.MonomorphismRestriction
TH.MonoPatBinds -> Just Exts.MonoPatBinds
TH.MonoLocalBinds -> Just Exts.MonoLocalBinds
TH.RelaxedPolyRec -> Just Exts.RelaxedPolyRec
TH.ExtendedDefaultRules -> Just Exts.ExtendedDefaultRules
TH.ForeignFunctionInterface -> Just Exts.ForeignFunctionInterface
TH.UnliftedFFITypes -> Just Exts.UnliftedFFITypes
TH.InterruptibleFFI -> Just Exts.InterruptibleFFI
TH.CApiFFI -> Just Exts.CApiFFI
TH.GHCForeignImportPrim -> Just Exts.GHCForeignImportPrim
TH.JavaScriptFFI -> Just Exts.JavaScriptFFI
TH.ParallelArrays -> Just Exts.ParallelArrays
TH.Arrows -> Just Exts.Arrows
TH.TemplateHaskell -> Just Exts.TemplateHaskell
TH.QuasiQuotes -> Just Exts.QuasiQuotes
TH.ImplicitParams -> Just Exts.ImplicitParams
TH.ImplicitPrelude -> Just Exts.ImplicitPrelude
TH.ScopedTypeVariables -> Just Exts.ScopedTypeVariables
TH.UnboxedSums -> Just Exts.UnboxedSums
TH.BangPatterns -> Just Exts.BangPatterns
TH.TypeFamilies -> Just Exts.TypeFamilies
TH.TypeFamilyDependencies -> Just Exts.TypeFamilyDependencies
TH.OverloadedStrings -> Just Exts.OverloadedStrings
TH.DisambiguateRecordFields -> Just Exts.DisambiguateRecordFields
TH.RecordWildCards -> Just Exts.RecordWildCards
TH.RecordPuns -> Just Exts.RecordPuns
TH.ViewPatterns -> Just Exts.ViewPatterns
TH.GADTs -> Just Exts.GADTs
TH.NPlusKPatterns -> Just Exts.NPlusKPatterns
TH.DoAndIfThenElse -> Just Exts.DoAndIfThenElse
TH.RebindableSyntax -> Just Exts.RebindableSyntax
TH.ConstraintKinds -> Just Exts.ConstraintKinds
TH.PolyKinds -> Just Exts.PolyKinds
TH.DataKinds -> Just Exts.DataKinds
TH.InstanceSigs -> Just Exts.InstanceSigs
TH.StandaloneDeriving -> Just Exts.StandaloneDeriving
TH.DeriveDataTypeable -> Just Exts.DeriveDataTypeable
TH.DeriveFunctor -> Just Exts.DeriveFunctor
TH.DeriveTraversable -> Just Exts.DeriveTraversable
TH.DeriveFoldable -> Just Exts.DeriveFoldable
TH.DeriveGeneric -> Just Exts.DeriveGeneric
TH.DefaultSignatures -> Just Exts.DefaultSignatures
TH.DeriveAnyClass -> Just Exts.DeriveAnyClass
TH.DerivingStrategies -> Just Exts.DerivingStrategies
TH.TypeSynonymInstances -> Just Exts.TypeSynonymInstances
TH.FlexibleContexts -> Just Exts.FlexibleContexts
TH.FlexibleInstances -> Just Exts.FlexibleInstances
TH.ConstrainedClassMethods -> Just Exts.ConstrainedClassMethods
TH.MultiParamTypeClasses -> Just Exts.MultiParamTypeClasses
TH.FunctionalDependencies -> Just Exts.FunctionalDependencies
TH.UnicodeSyntax -> Just Exts.UnicodeSyntax
TH.ExistentialQuantification -> Just Exts.ExistentialQuantification
TH.MagicHash -> Just Exts.MagicHash
TH.EmptyDataDecls -> Just Exts.EmptyDataDecls
TH.KindSignatures -> Just Exts.KindSignatures
TH.RoleAnnotations -> Just Exts.RoleAnnotations
TH.ParallelListComp -> Just Exts.ParallelListComp
TH.TransformListComp -> Just Exts.TransformListComp
TH.GeneralizedNewtypeDeriving -> Just Exts.GeneralizedNewtypeDeriving
TH.RecursiveDo -> Just Exts.RecursiveDo
TH.PostfixOperators -> Just Exts.PostfixOperators
TH.TupleSections -> Just Exts.TupleSections
TH.PatternGuards -> Just Exts.PatternGuards
TH.LiberalTypeSynonyms -> Just Exts.LiberalTypeSynonyms
TH.RankNTypes -> Just Exts.RankNTypes
TH.ImpredicativeTypes -> Just Exts.ImpredicativeTypes
TH.TypeOperators -> Just Exts.TypeOperators
TH.ExplicitNamespaces -> Just Exts.ExplicitNamespaces
TH.PackageImports -> Just Exts.PackageImports
TH.ExplicitForAll -> Just Exts.ExplicitForAll
TH.DatatypeContexts -> Just Exts.DatatypeContexts
TH.NondecreasingIndentation -> Just Exts.NondecreasingIndentation
TH.LambdaCase -> Just Exts.LambdaCase
TH.MultiWayIf -> Just Exts.MultiWayIf
TH.BinaryLiterals -> Just Exts.BinaryLiterals
TH.OverloadedLabels -> Just Exts.OverloadedLabels
TH.EmptyCase -> Just Exts.EmptyCase
TH.PatternSynonyms -> Just Exts.PatternSynonyms
TH.PartialTypeSignatures -> Just Exts.PartialTypeSignatures
TH.NamedWildCards -> Just Exts.NamedWildCards
TH.TypeApplications -> Just Exts.TypeApplications
TH.UndecidableSuperClasses -> Nothing
TH.TemplateHaskellQuotes -> Nothing
TH.AllowAmbiguousTypes -> Nothing
TH.UnboxedTuples -> Nothing
TH.TypeInType -> Nothing
TH.OverloadedLists -> Nothing
TH.NumDecimals -> Nothing
TH.GADTSyntax -> Nothing
TH.BlockArguments -> Nothing
TH.ApplicativeDo -> Nothing
TH.AutoDeriveTypeable -> Nothing
TH.DeriveLift -> Nothing
TH.DerivingVia -> Nothing
TH.NullaryTypeClasses -> Nothing
TH.MonadComprehensions -> Nothing
TH.AlternativeLayoutRule -> Nothing
TH.AlternativeLayoutRuleTransitional -> Nothing
TH.RelaxedLayout -> Nothing
TH.TraditionalRecordSyntax -> Nothing
TH.NegativeLiterals -> Nothing
TH.HexFloatLiterals -> Nothing
TH.DuplicateRecordFields -> Nothing
TH.StaticPointers -> Nothing
TH.Strict -> Nothing
TH.StrictData -> Nothing
TH.MonadFailDesugaring -> Nothing
TH.EmptyDataDeriving -> Nothing
TH.NumericUnderscores -> Nothing
TH.QuantifiedConstraints -> Nothing
TH.StarIsType -> Nothing