TcRnMonad

ghc-8.0.0.20160204: The GHC API

Safe Haskell | None
Language | Haskell2010

TcRnMonad

Contents

- Orphan instances

Synopsis

- initTc :: HscEnv -> HscSource -> Bool -> Module -> RealSrcSpan -> TcM r -> IO (Messages, Maybe r)
- initTcInteractive :: HscEnv -> TcM a -> IO (Messages, Maybe a)
- initTcForLookup :: HscEnv -> TcM a -> IO a
- initTcRnIf :: Char -> HscEnv -> gbl -> lcl -> TcRnIf gbl lcl a -> IO a
- discardResult :: TcM a -> TcM ()
- getTopEnv :: TcRnIf gbl lcl HscEnv
- updTopEnv :: (HscEnv -> HscEnv) -> TcRnIf gbl lcl a -> TcRnIf gbl lcl 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
- xoptM :: Extension -> TcRnIf gbl lcl Bool
- doptM :: DumpFlag -> TcRnIf gbl lcl Bool
- goptM :: GeneralFlag -> TcRnIf gbl lcl Bool
- woptM :: WarningFlag -> TcRnIf gbl lcl Bool
- setXOptM :: Extension -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a
- unsetGOptM :: GeneralFlag -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a
- unsetWOptM :: WarningFlag -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a
- whenDOptM :: DumpFlag -> TcRnIf gbl lcl () -> TcRnIf gbl lcl ()
- whenGOptM :: GeneralFlag -> TcRnIf gbl lcl () -> TcRnIf gbl lcl ()
- whenWOptM :: WarningFlag -> TcRnIf gbl lcl () -> TcRnIf gbl lcl ()
- whenXOptM :: Extension -> TcRnIf gbl lcl () -> TcRnIf gbl lcl ()
- getGhcMode :: TcRnIf gbl lcl GhcMode
- withDoDynamicToo :: TcRnIf gbl lcl a -> TcRnIf gbl lcl a
- getEpsVar :: TcRnIf gbl lcl (TcRef ExternalPackageState)
- getEps :: TcRnIf gbl lcl ExternalPackageState
- updateEps :: (ExternalPackageState -> (ExternalPackageState, a)) -> TcRnIf gbl lcl a
- updateEps_ :: (ExternalPackageState -> ExternalPackageState) -> TcRnIf gbl lcl ()
- getHpt :: TcRnIf gbl lcl HomePackageTable
- getEpsAndHpt :: TcRnIf gbl lcl (ExternalPackageState, HomePackageTable)
- newArrowScope :: TcM a -> TcM a
- escapeArrowScope :: TcM a -> TcM a
- newUnique :: TcRnIf gbl lcl Unique
- newUniqueSupply :: TcRnIf gbl lcl UniqSupply
- newLocalName :: Name -> TcM Name
- newName :: OccName -> TcM Name
- newSysName :: OccName -> TcRnIf gbl lcl Name
- newSysLocalId :: FastString -> TcType -> TcRnIf gbl lcl TcId
- newSysLocalIds :: FastString -> [TcType] -> TcRnIf gbl lcl [TcId]
- 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 ()
- updTcRefX :: TcRef a -> (a -> a) -> TcRnIf gbl lcl a
- traceTc :: String -> SDoc -> TcRn ()
- traceTcN :: Int -> SDoc -> TcRn ()
- traceRn :: SDoc -> TcRn ()
- traceOptTcRn :: DumpFlag -> SDoc -> TcRn ()
- traceTcRn :: DumpFlag -> SDoc -> TcRn ()
- getPrintUnqualified :: DynFlags -> TcRn PrintUnqualified
- printForUserTcRn :: SDoc -> TcRn ()
- debugDumpTcRn :: SDoc -> TcRn ()
- traceIf :: SDoc -> TcRnIf m n ()
- traceHiDiffs :: SDoc -> TcRnIf m n ()
- traceOptIf :: DumpFlag -> SDoc -> TcRnIf m n ()
- setModule :: Module -> TcRn a -> TcRn a
- getIsGHCi :: TcRn Bool
- getGHCiMonad :: TcRn Name
- getInteractivePrintName :: TcRn Name
- tcIsHsBootOrSig :: TcRn Bool
- tcSelfBootInfo :: TcRn SelfBootInfo
- getGlobalRdrEnv :: TcRn GlobalRdrEnv
- getRdrEnvs :: TcRn (GlobalRdrEnv, LocalRdrEnv)
- getImports :: TcRn ImportAvails
- getFixityEnv :: TcRn FixityEnv
- extendFixityEnv :: [(Name, FixItem)] -> RnM a -> RnM a
- getRecFieldEnv :: TcRn RecFieldEnv
- getDeclaredDefaultTys :: TcRn (Maybe [Type])
- addDependentFiles :: [FilePath] -> TcRn ()
- getSrcSpanM :: TcRn SrcSpan
- setSrcSpan :: SrcSpan -> TcRn a -> TcRn 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)
- getErrsVar :: TcRn (TcRef Messages)
- setErrsVar :: TcRef Messages -> TcRn a -> TcRn a
- addErr :: MsgDoc -> TcRn ()
- failWith :: MsgDoc -> TcRn a
- failAt :: SrcSpan -> MsgDoc -> TcRn a
- addErrAt :: SrcSpan -> MsgDoc -> TcRn ()
- addErrs :: [(SrcSpan, MsgDoc)] -> TcRn ()
- checkErr :: Bool -> MsgDoc -> TcRn ()
- warnIf :: Bool -> MsgDoc -> TcRn ()
- addMessages :: Messages -> TcRn ()
- discardWarnings :: TcRn a -> TcRn a
- mkLongErrAt :: SrcSpan -> MsgDoc -> MsgDoc -> TcRn ErrMsg
- mkErrDocAt :: SrcSpan -> ErrDoc -> TcRn ErrMsg
- addLongErrAt :: SrcSpan -> MsgDoc -> MsgDoc -> TcRn ()
- reportErrors :: [ErrMsg] -> TcM ()
- reportError :: ErrMsg -> TcRn ()
- reportWarning :: ErrMsg -> TcRn ()
- try_m :: TcRn r -> TcRn (Either IOEnvFailure r)
- recoverM :: TcRn r -> TcRn r -> TcRn r
- mapAndRecoverM :: (a -> TcRn b) -> [a] -> TcRn [b]
- mapAndReportM :: (a -> TcRn b) -> [a] -> TcRn [b]
- tryTc :: TcRn a -> TcRn (Messages, Maybe a)
- askNoErrs :: TcRn a -> TcRn (a, Bool)
- discardErrs :: TcRn a -> TcRn a
- tryTcErrs :: TcRn a -> TcRn (Messages, Maybe a)
- tryTcLIE :: TcM a -> TcM (Messages, Maybe a)
- tryTcLIE_ :: TcM r -> TcM r -> TcM r
- checkNoErrs :: TcM r -> TcM r
- whenNoErrs :: TcM () -> TcM ()
- ifErrsM :: TcRn r -> TcRn r -> TcRn r
- failIfErrsM :: TcRn ()
- checkTH :: a -> String -> TcRn ()
- failTH :: Outputable a => a -> String -> TcRn x
- getErrCtxt :: TcM [ErrCtxt]
- setErrCtxt :: [ErrCtxt] -> TcM a -> TcM a
- addErrCtxt :: MsgDoc -> TcM a -> TcM a
- addErrCtxtM :: (TidyEnv -> TcM (TidyEnv, MsgDoc)) -> TcM a -> TcM a
- addLandmarkErrCtxt :: MsgDoc -> TcM a -> TcM a
- addLandmarkErrCtxtM :: (TidyEnv -> TcM (TidyEnv, MsgDoc)) -> TcM a -> TcM a
- updCtxt :: ([ErrCtxt] -> [ErrCtxt]) -> TcM a -> TcM a
- popErrCtxt :: TcM a -> TcM a
- getCtLocM :: CtOrigin -> Maybe TypeOrKind -> TcM CtLoc
- setCtLocM :: CtLoc -> TcM a -> TcM a
- addErrTc :: MsgDoc -> TcM ()
- addErrsTc :: [MsgDoc] -> TcM ()
- addErrTcM :: (TidyEnv, MsgDoc) -> TcM ()
- mkErrTcM :: (TidyEnv, MsgDoc) -> TcM ErrMsg
- failWithTc :: MsgDoc -> TcM a
- failWithTcM :: (TidyEnv, MsgDoc) -> TcM a
- checkTc :: Bool -> MsgDoc -> TcM ()
- checkTcM :: Bool -> (TidyEnv, MsgDoc) -> TcM ()
- failIfTc :: Bool -> MsgDoc -> TcM ()
- failIfTcM :: Bool -> (TidyEnv, MsgDoc) -> TcM ()
- warnTc :: Bool -> MsgDoc -> TcM ()
- warnTcM :: Bool -> (TidyEnv, MsgDoc) -> TcM ()
- addWarnTc :: MsgDoc -> TcM ()
- addWarnTcM :: (TidyEnv, MsgDoc) -> TcM ()
- addWarn :: MsgDoc -> TcRn ()
- addWarnAt :: SrcSpan -> MsgDoc -> TcRn ()
- add_warn :: MsgDoc -> MsgDoc -> TcRn ()
- add_warn_at :: SrcSpan -> MsgDoc -> MsgDoc -> TcRn ()
- tcInitTidyEnv :: TcM TidyEnv
- tcInitOpenTidyEnv :: TyCoVarSet -> TcM TidyEnv
- add_err_tcm :: TidyEnv -> MsgDoc -> SrcSpan -> [ErrCtxt] -> TcM ()
- mkErrInfo :: TidyEnv -> [ErrCtxt] -> TcM SDoc
- mAX_CONTEXTS :: Int
- debugTc :: TcM () -> TcM ()
- newTcEvBinds :: TcM EvBindsVar
- addTcEvBind :: EvBindsVar -> EvBind -> TcM ()
- getTcEvBinds :: EvBindsVar -> TcM (Bag EvBind)
- getTcEvBindsMap :: EvBindsVar -> TcM EvBindMap
- chooseUniqueOccTc :: (OccSet -> OccName) -> TcM OccName
- getConstraintVar :: TcM (TcRef WantedConstraints)
- setConstraintVar :: TcRef WantedConstraints -> TcM a -> TcM a
- emitConstraints :: WantedConstraints -> TcM ()
- emitSimple :: Ct -> TcM ()
- emitSimples :: Cts -> TcM ()
- emitImplication :: Implication -> TcM ()
- emitImplications :: Bag Implication -> TcM ()
- emitInsoluble :: Ct -> TcM ()
- discardConstraints :: TcM a -> TcM a
- captureConstraints :: TcM a -> TcM (a, WantedConstraints)
- pushLevelAndCaptureConstraints :: TcM a -> TcM (TcLevel, WantedConstraints, a)
- pushTcLevelM_ :: TcM a -> TcM a
- pushTcLevelM :: TcM a -> TcM (a, TcLevel)
- getTcLevel :: TcM TcLevel
- setTcLevel :: TcLevel -> TcM a -> TcM a
- isTouchableTcM :: TcTyVar -> TcM Bool
- getLclTypeEnv :: TcM TcTypeEnv
- setLclTypeEnv :: TcLclEnv -> TcM a -> TcM a
- traceTcConstraints :: String -> TcM ()
- emitWildCardHoleConstraints :: [(Name, TcTyVar)] -> TcM ()
- recordThUse :: TcM ()
- recordThSpliceUse :: TcM ()
- keepAlive :: Name -> TcRn ()
- getStage :: TcM ThStage
- getStageAndBindLevel :: Name -> TcRn (Maybe (TopLevelFlag, ThLevel, ThStage))
- setStage :: ThStage -> TcM a -> TcRn a
- recordUnsafeInfer :: WarningMessages -> TcM ()
- finalSafeMode :: DynFlags -> TcGblEnv -> IO SafeHaskellMode
- fixSafeInstances :: SafeHaskellMode -> [ClsInst] -> [ClsInst]
- getLocalRdrEnv :: RnM LocalRdrEnv
- setLocalRdrEnv :: LocalRdrEnv -> RnM a -> RnM a
- mkIfLclEnv :: Module -> SDoc -> IfLclEnv
- initIfaceTcRn :: IfG a -> TcRn a
- initIfaceCheck :: HscEnv -> IfG a -> IO a
- initIfaceTc :: ModIface -> (TcRef TypeEnv -> IfL a) -> TcRnIf gbl lcl a
- initIfaceLcl :: Module -> SDoc -> IfL a -> IfM lcl a
- getIfModule :: IfL Module
- failIfM :: MsgDoc -> IfL a
- forkM_maybe :: SDoc -> IfL a -> IfL (Maybe a)
- forkM :: SDoc -> IfL a -> IfL a
- module TcRnTypes
- module IOEnv

# Documentation

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

Setup the initial typechecking environment

initTcInteractive :: HscEnv -> TcM a -> IO (Messages, Maybe a) Source

initTcForLookup :: HscEnv -> TcM a -> IO a Source

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

discardResult :: TcM a -> TcM () Source

getTopEnv :: TcRnIf gbl lcl HscEnv Source

updTopEnv :: (HscEnv -> HscEnv) -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a Source

getGblEnv :: TcRnIf gbl lcl gbl Source

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

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

getLclEnv :: TcRnIf gbl lcl lcl Source

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

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

getEnvs :: TcRnIf gbl lcl (gbl, lcl) Source

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

xoptM :: Extension -> TcRnIf gbl lcl Bool Source

doptM :: DumpFlag -> TcRnIf gbl lcl Bool Source

goptM :: GeneralFlag -> TcRnIf gbl lcl Bool Source

woptM :: WarningFlag -> TcRnIf gbl lcl Bool Source

setXOptM :: Extension -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a Source

unsetGOptM :: GeneralFlag -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a Source

unsetWOptM :: WarningFlag -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a Source

whenDOptM :: DumpFlag -> TcRnIf gbl lcl () -> TcRnIf gbl lcl () Source

Do it flag is true

whenGOptM :: GeneralFlag -> TcRnIf gbl lcl () -> TcRnIf gbl lcl () Source

whenWOptM :: WarningFlag -> TcRnIf gbl lcl () -> TcRnIf gbl lcl () Source

whenXOptM :: Extension -> TcRnIf gbl lcl () -> TcRnIf gbl lcl () Source

getGhcMode :: TcRnIf gbl lcl GhcMode Source

withDoDynamicToo :: TcRnIf gbl lcl a -> TcRnIf gbl lcl a Source

getEpsVar :: TcRnIf gbl lcl (TcRef ExternalPackageState) Source

getEps :: TcRnIf gbl lcl ExternalPackageState Source

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

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 () Source

Update the external package state.

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

getHpt :: TcRnIf gbl lcl HomePackageTable Source

getEpsAndHpt :: TcRnIf gbl lcl (ExternalPackageState, HomePackageTable) Source

newArrowScope :: TcM a -> TcM a Source

escapeArrowScope :: TcM a -> TcM a Source

newUnique :: TcRnIf gbl lcl Unique Source

newUniqueSupply :: TcRnIf gbl lcl UniqSupply Source

newLocalName :: Name -> TcM Name Source

newName :: OccName -> TcM Name Source

newSysName :: OccName -> TcRnIf gbl lcl Name Source

newSysLocalId :: FastString -> TcType -> TcRnIf gbl lcl TcId Source

newSysLocalIds :: FastString -> [TcType] -> TcRnIf gbl lcl [TcId] Source

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

readTcRef :: TcRef a -> TcRnIf gbl lcl a Source

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

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

updTcRefX :: TcRef a -> (a -> a) -> TcRnIf gbl lcl a Source

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

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

Typechecker trace

traceRn :: SDoc -> TcRn () Source

traceOptTcRn :: DumpFlag -> SDoc -> TcRn () Source

Output a doc if the given `DumpFlag` is set.

By default this logs to stdout However, if the `-ddump-to-file` flag is set, then this will dump output to a file

Just a wrapper for `dumpSDoc`

traceTcRn :: DumpFlag -> SDoc -> TcRn () Source

Unconditionally dump some trace output

The DumpFlag is used only to set the output filename for --dump-to-file, not to decide whether or not to output That part is done by the caller

getPrintUnqualified :: DynFlags -> TcRn PrintUnqualified Source

printForUserTcRn :: SDoc -> TcRn () Source

Like logInfoTcRn, but for user consumption

debugDumpTcRn :: SDoc -> TcRn () Source

Typechecker debug

traceIf :: SDoc -> TcRnIf m n () Source

traceHiDiffs :: SDoc -> TcRnIf m n () Source

traceOptIf :: DumpFlag -> SDoc -> TcRnIf m n () Source

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

getIsGHCi :: TcRn Bool Source

getGHCiMonad :: TcRn Name Source

getInteractivePrintName :: TcRn Name Source

tcIsHsBootOrSig :: TcRn Bool Source

tcSelfBootInfo :: TcRn SelfBootInfo Source

getGlobalRdrEnv :: TcRn GlobalRdrEnv Source

getRdrEnvs :: TcRn (GlobalRdrEnv, LocalRdrEnv) Source

getImports :: TcRn ImportAvails Source

getFixityEnv :: TcRn FixityEnv Source

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

getRecFieldEnv :: TcRn RecFieldEnv Source

getDeclaredDefaultTys :: TcRn (Maybe [Type]) Source

addDependentFiles :: [FilePath] -> TcRn () Source

getSrcSpanM :: TcRn SrcSpan Source

setSrcSpan :: SrcSpan -> TcRn a -> TcRn a Source

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

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

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

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

getErrsVar :: TcRn (TcRef Messages) Source

setErrsVar :: TcRef Messages -> TcRn a -> TcRn a Source

addErr :: MsgDoc -> TcRn () Source

failWith :: MsgDoc -> TcRn a Source

failAt :: SrcSpan -> MsgDoc -> TcRn a Source

addErrAt :: SrcSpan -> MsgDoc -> TcRn () Source

addErrs :: [(SrcSpan, MsgDoc)] -> TcRn () Source

checkErr :: Bool -> MsgDoc -> TcRn () Source

warnIf :: Bool -> MsgDoc -> TcRn () Source

addMessages :: Messages -> TcRn () Source

discardWarnings :: TcRn a -> TcRn a Source

mkLongErrAt :: SrcSpan -> MsgDoc -> MsgDoc -> TcRn ErrMsg Source

mkErrDocAt :: SrcSpan -> ErrDoc -> TcRn ErrMsg Source

addLongErrAt :: SrcSpan -> MsgDoc -> MsgDoc -> TcRn () Source

reportErrors :: [ErrMsg] -> TcM () Source

reportError :: ErrMsg -> TcRn () Source

reportWarning :: ErrMsg -> TcRn () Source

try_m :: TcRn r -> TcRn (Either IOEnvFailure r) Source

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

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

mapAndReportM :: (a -> TcRn b) -> [a] -> TcRn [b] Source

Succeeds if applying the argument to all members of the lists succeeds, but nevertheless runs it on all arguments, to collect all errors.

tryTc :: TcRn a -> TcRn (Messages, Maybe a) Source

askNoErrs :: TcRn a -> TcRn (a, Bool) Source

discardErrs :: TcRn a -> TcRn a Source

tryTcErrs :: TcRn a -> TcRn (Messages, Maybe a) Source

tryTcLIE :: TcM a -> TcM (Messages, Maybe a) Source

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

checkNoErrs :: TcM r -> TcM r Source

whenNoErrs :: TcM () -> TcM () Source

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

failIfErrsM :: TcRn () Source

checkTH :: a -> String -> TcRn () Source

failTH :: Outputable a => a -> String -> TcRn x Source

getErrCtxt :: TcM [ErrCtxt] Source

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

addErrCtxt :: MsgDoc -> TcM a -> TcM a Source

Add a fixed message to the error context. This message should not do any tidying.

addErrCtxtM :: (TidyEnv -> TcM (TidyEnv, MsgDoc)) -> TcM a -> TcM a Source

Add a message to the error context. This message may do tidying.

addLandmarkErrCtxt :: MsgDoc -> TcM a -> TcM a Source

Add a fixed landmark message to the error context. A landmark message is always sure to be reported, even if there is a lot of context. It also doesn't count toward the maximum number of contexts reported.

addLandmarkErrCtxtM :: (TidyEnv -> TcM (TidyEnv, MsgDoc)) -> TcM a -> TcM a Source

Variant of `addLandmarkErrCtxt` that allows for monadic operations and tidying.

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

popErrCtxt :: TcM a -> TcM a Source

getCtLocM :: CtOrigin -> Maybe TypeOrKind -> TcM CtLoc Source

setCtLocM :: CtLoc -> TcM a -> TcM a Source

addErrTc :: MsgDoc -> TcM () Source

addErrsTc :: [MsgDoc] -> TcM () Source

addErrTcM :: (TidyEnv, MsgDoc) -> TcM () Source

mkErrTcM :: (TidyEnv, MsgDoc) -> TcM ErrMsg Source

failWithTc :: MsgDoc -> TcM a Source

failWithTcM :: (TidyEnv, MsgDoc) -> TcM a Source

checkTc :: Bool -> MsgDoc -> TcM () Source

checkTcM :: Bool -> (TidyEnv, MsgDoc) -> TcM () Source

failIfTc :: Bool -> MsgDoc -> TcM () Source

failIfTcM :: Bool -> (TidyEnv, MsgDoc) -> TcM () Source

warnTc :: Bool -> MsgDoc -> TcM () Source

warnTcM :: Bool -> (TidyEnv, MsgDoc) -> TcM () Source

addWarnTc :: MsgDoc -> TcM () Source

addWarnTcM :: (TidyEnv, MsgDoc) -> TcM () Source

addWarn :: MsgDoc -> TcRn () Source

addWarnAt :: SrcSpan -> MsgDoc -> TcRn () Source

add_warn :: MsgDoc -> MsgDoc -> TcRn () Source

add_warn_at :: SrcSpan -> MsgDoc -> MsgDoc -> TcRn () Source

tcInitTidyEnv :: TcM TidyEnv Source

tcInitOpenTidyEnv :: TyCoVarSet -> TcM TidyEnv Source

Get a `TidyEnv` that includes mappings for all vars free in the given type. Useful when tidying open types.

add_err_tcm :: TidyEnv -> MsgDoc -> SrcSpan -> [ErrCtxt] -> TcM () Source

mkErrInfo :: TidyEnv -> [ErrCtxt] -> TcM SDoc Source

mAX_CONTEXTS :: Int Source

debugTc :: TcM () -> TcM () Source

newTcEvBinds :: TcM EvBindsVar Source

addTcEvBind :: EvBindsVar -> EvBind -> TcM () Source

getTcEvBinds :: EvBindsVar -> TcM (Bag EvBind) Source

getTcEvBindsMap :: EvBindsVar -> TcM EvBindMap Source

chooseUniqueOccTc :: (OccSet -> OccName) -> TcM OccName Source

getConstraintVar :: TcM (TcRef WantedConstraints) Source

setConstraintVar :: TcRef WantedConstraints -> TcM a -> TcM a Source

emitConstraints :: WantedConstraints -> TcM () Source

emitSimple :: Ct -> TcM () Source

emitSimples :: Cts -> TcM () Source

emitImplication :: Implication -> TcM () Source

emitImplications :: Bag Implication -> TcM () Source

emitInsoluble :: Ct -> TcM () Source

discardConstraints :: TcM a -> TcM a Source

Throw out any constraints emitted by the thing_inside

captureConstraints :: TcM a -> TcM (a, WantedConstraints) Source

pushLevelAndCaptureConstraints :: TcM a -> TcM (TcLevel, WantedConstraints, a) Source

pushTcLevelM_ :: TcM a -> TcM a Source

pushTcLevelM :: TcM a -> TcM (a, TcLevel) Source

getTcLevel :: TcM TcLevel Source

setTcLevel :: TcLevel -> TcM a -> TcM a Source

isTouchableTcM :: TcTyVar -> TcM Bool Source

getLclTypeEnv :: TcM TcTypeEnv Source

setLclTypeEnv :: TcLclEnv -> TcM a -> TcM a Source

traceTcConstraints :: String -> TcM () Source

emitWildCardHoleConstraints :: [(Name, TcTyVar)] -> TcM () Source

recordThUse :: TcM () Source

recordThSpliceUse :: TcM () Source

keepAlive :: Name -> TcRn () Source

getStage :: TcM ThStage Source

getStageAndBindLevel :: Name -> TcRn (Maybe (TopLevelFlag, ThLevel, ThStage)) Source

setStage :: ThStage -> TcM a -> TcRn a Source

recordUnsafeInfer :: WarningMessages -> TcM () Source

Mark that safe inference has failed See Note [Safe Haskell Overlapping Instances Implementation] although this is used for more than just that failure case.

finalSafeMode :: DynFlags -> TcGblEnv -> IO SafeHaskellMode Source

Figure out the final correct safe haskell mode

fixSafeInstances :: SafeHaskellMode -> [ClsInst] -> [ClsInst] Source

Switch instances to safe instances if we're in Safe mode.

getLocalRdrEnv :: RnM LocalRdrEnv Source

setLocalRdrEnv :: LocalRdrEnv -> RnM a -> RnM a Source

mkIfLclEnv :: Module -> SDoc -> IfLclEnv Source

initIfaceTcRn :: IfG a -> TcRn a Source

Run an `IfG` (top-level interface monad) computation inside an existing `TcRn` (typecheck-renaming monad) computation by initializing an `IfGblEnv` based on `TcGblEnv`.

initIfaceCheck :: HscEnv -> IfG a -> IO a Source

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

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

getIfModule :: IfL Module Source

failIfM :: MsgDoc -> IfL a Source

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

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

module TcRnTypes

module IOEnv

# Orphan instances

MonadUnique (IOEnv (Env gbl lcl)) |
Methods getUniqueSupplyM :: IOEnv (Env gbl lcl) UniqSupply Source getUniqueM :: IOEnv (Env gbl lcl) Unique Source getUniquesM :: IOEnv (Env gbl lcl) [Unique] Source