-- | Mapping between Cabal's and GHC's representation of language extensions. module Language.Haskell.Tools.Daemon.MapExtensions ( module Language.Haskell.Tools.Daemon.MapExtensions , module Language.Haskell.Tools.Refactor.Utils.Extensions ) where import DynFlags (DynFlags, xopt_unset, xopt_set) import Language.Haskell.TH.LanguageExtensions as GHC (Extension) import Language.Haskell.Tools.Refactor.Utils.Extensions -- * Not imported from DynFlags.hs, so I copied it here setExtensionFlag', unSetExtensionFlag' :: GHC.Extension -> DynFlags -> DynFlags setExtensionFlag' f dflags = foldr ($) (xopt_set dflags f) deps where deps = [ if turn_on then setExtensionFlag' d else unSetExtensionFlag' d | (f', turn_on, d) <- impliedXFlags, f' == f ] unSetExtensionFlag' f dflags = xopt_unset dflags f