ghc-7.0.2: The GHC API

TcRnMonad

Synopsis

Documentation

initTc :: HscEnv -> HscSource -> Bool -> Module -> TcM r -> IO (Messages, Maybe r)

initTcRnIf :: Char -> HscEnv -> gbl -> lcl -> TcRnIf gbl lcl a -> IO a

getGblEnv :: TcRnIf gbl lcl gbl

updGblEnv :: (gbl -> gbl) -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a

setGblEnv :: gbl -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a

getLclEnv :: TcRnIf gbl lcl lcl

updLclEnv :: (lcl -> lcl) -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a

setLclEnv :: lcl' -> TcRnIf gbl lcl' a -> TcRnIf gbl lcl a

getEnvs :: TcRnIf gbl lcl (gbl, lcl)

setEnvs :: (gbl', lcl') -> TcRnIf gbl' lcl' a -> TcRnIf gbl lcl a

doptM :: DynFlag -> TcRnIf gbl lcl Bool

setOptM :: ExtensionFlag -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a

unsetOptM :: DynFlag -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a

ifDOptM :: DynFlag -> TcRnIf gbl lcl () -> TcRnIf gbl lcl ()

Do it flag is true

ifXOptM :: ExtensionFlag -> TcRnIf gbl lcl () -> TcRnIf gbl lcl ()

updateEps :: (ExternalPackageState -> (ExternalPackageState, a)) -> TcRnIf gbl lcl a

Update the external package state. Returns the second result of the modifier function.

This is an atomic operation and forces evaluation of the modified EPS in order to avoid space leaks.

updateEps_ :: (ExternalPackageState -> ExternalPackageState) -> TcRnIf gbl lcl ()

Update the external package state.

This is an atomic operation and forces evaluation of the modified EPS in order to avoid space leaks.

newTcRef :: a -> TcRnIf gbl lcl (TcRef a)

readTcRef :: TcRef a -> TcRnIf gbl lcl a

writeTcRef :: TcRef a -> a -> TcRnIf gbl lcl ()

updTcRef :: TcRef a -> (a -> a) -> TcRnIf gbl lcl ()

traceTc :: String -> SDoc -> TcRn ()

traceTcN :: Int -> String -> SDoc -> TcRn ()

traceRn :: SDoc -> TcRn ()

traceHiDiffs :: SDoc -> TcRnIf m n ()

traceIf :: SDoc -> TcRnIf m n ()

traceOptIf :: DynFlag -> SDoc -> TcRnIf m n ()

dumpTcRn :: SDoc -> TcRn ()

setModule :: Module -> TcRn a -> TcRn a

extendFixityEnv :: [(Name, FixItem)] -> RnM a -> RnM a

addLocM :: (a -> TcM b) -> Located a -> TcM b

wrapLocM :: (a -> TcM b) -> Located a -> TcM (Located b)

wrapLocFstM :: (a -> TcM (b, c)) -> Located a -> TcM (Located b, c)

wrapLocSndM :: (a -> TcM (b, c)) -> Located a -> TcM (b, Located c)

addErrs :: [(SrcSpan, Message)] -> TcRn ()

warnIf :: Bool -> Message -> TcRn ()

recoverM :: TcRn r -> TcRn r -> TcRn r

mapAndRecoverM :: (a -> TcRn b) -> [a] -> TcRn [b]

tryTcLIE_ :: TcM r -> TcM r -> TcM r

checkNoErrs :: TcM r -> TcM r

ifErrsM :: TcRn r -> TcRn r -> TcRn r

setErrCtxt :: [ErrCtxt] -> TcM a -> TcM a

addErrCtxt :: Message -> TcM a -> TcM a

updCtxt :: ([ErrCtxt] -> [ErrCtxt]) -> TcM a -> TcM a

popErrCtxt :: TcM a -> TcM a

getCtLoc :: orig -> TcM (CtLoc orig)

setCtLoc :: CtLoc orig -> TcM a -> TcM a

addErrsTc :: [Message] -> TcM ()

checkTc :: Bool -> Message -> TcM ()

warnTc :: Bool -> Message -> TcM ()

debugTc :: TcM () -> TcM ()

keepAliveTc :: Id -> TcM ()

setStage :: ThStage -> TcM a -> TcM a

initIfaceTc :: ModIface -> (TcRef TypeEnv -> IfL a) -> TcRnIf gbl lcl a

initIfaceLcl :: Module -> SDoc -> IfL a -> IfM lcl a

forkM_maybe :: SDoc -> IfL a -> IfL (Maybe a)

forkM :: SDoc -> IfL a -> IfL a

module TcRnTypes

module IOEnv