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
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