{-# LANGUAGE TemplateHaskell #-} module Language.Haskell.Tools.Refactor.Session where import Data.Map as Map import Control.Monad.State import Control.Reference import Language.Haskell.Tools.AST (IdDom) import Language.Haskell.Tools.Refactor (IsBoot(..)) import Language.Haskell.Tools.Refactor.RefactorBase (UnnamedModule) type RefactorSession = StateT RefactorSessionState data RefactorSessionState = RefactorSessionState { _refSessMods :: Map.Map (String, String, IsBoot) (UnnamedModule IdDom) , _actualMod :: Maybe (String, String, IsBoot) , _exiting :: Bool , _dryMode :: Bool } initSession :: RefactorSessionState initSession = RefactorSessionState Map.empty Nothing False False makeReferences ''RefactorSessionState