haskell-tools-builtin-refactorings-1.0.0.0: Language/Haskell/Tools/Refactor/Builtin/ExtensionOrganizer/Utils/SupportedExtensions.hs
module Language.Haskell.Tools.Refactor.Builtin.ExtensionOrganizer.Utils.SupportedExtensions where
import Language.Haskell.TH.LanguageExtensions (Extension(..))
unregularExts :: String -> String
unregularExts "CPP" = "Cpp"
unregularExts "NamedFieldPuns" = "RecordPuns"
unregularExts "GeneralisedNewtypeDeriving" = "GeneralizedNewtypeDeriving"
unregularExts e = e
isSupported :: Extension -> Bool
isSupported = flip elem fullyHandledExtensions
fullyHandledExtensions :: [Extension]
fullyHandledExtensions = syntacticExtensions
++ derivingExtensions
-- ++ [FlexibleInstances]
syntacticExtensions :: [Extension]
syntacticExtensions = [ RecordWildCards, TemplateHaskell, BangPatterns
, PatternSynonyms, TupleSections, LambdaCase, QuasiQuotes
, ViewPatterns, MagicHash, UnboxedTuples]
derivingExtensions :: [Extension]
derivingExtensions = [ DeriveDataTypeable, DeriveGeneric, DeriveFunctor
, DeriveFoldable, DeriveTraversable, DeriveLift
, DeriveAnyClass, GeneralizedNewtypeDeriving
, StandaloneDeriving, DerivingStrategies ]