module Language.Haskell.Refact.Utils.Types
(
ApplyRefacResult
, RefacResult(..)
, TypecheckedModule(..)
, TreeId(..)
, mainTid
, TokenCache(..)
, SimpPos
, SimpSpan
, NameMap
) where
import qualified Avail as GHC
import qualified GHC as GHC
import qualified RdrName as GHC
import Language.Haskell.GHC.ExactPrint
import qualified Data.Map as Map
type ApplyRefacResult = ((FilePath, RefacResult), (Anns,GHC.ParsedSource))
data RefacResult = RefacModified | RefacUnmodifed
deriving (Show,Ord,Eq)
data TypecheckedModule = TypecheckedModule
{ tmParsedModule :: !GHC.ParsedModule
, tmRenamedSource :: !GHC.RenamedSource
, tmTypecheckedSource :: !GHC.TypecheckedSource
, tmMinfExports :: [GHC.AvailInfo]
, tmMinfRdrEnv :: (Maybe GHC.GlobalRdrEnv)
}
instance Show TypecheckedModule where
show _ = "TypeCheckedModule(..)"
data TreeId = TId !Int deriving (Eq,Ord,Show)
mainTid :: TreeId
mainTid = TId 0
data TokenCache a = TK
{ tkCache :: !(Map.Map TreeId a)
, tkLastTreeId :: !TreeId
} deriving (Show)
type SimpPos = (Int,Int)
type SimpSpan = (SimpPos,SimpPos)
type NameMap = Map.Map GHC.SrcSpan GHC.Name