HscTypes

# `Ghc` monad stuff

data Ghc a
data GhcT m a
liftGhcT
class GhcMonad m
class WarnLogMonad m
liftIO
ioMsgMaybe
ioMsg
logWarnings
clearWarnings
hasWarnings
data SourceError
data GhcApiError
mkSrcErr
srcErrorMessages
mkApiErr
throwOneError
handleSourceError
reflectGhc
reifyGhc

# Sessions and compilation state

data Session
withSession
modifySession
data HscEnv
hscEPS
type FinderCache
data FindResult
type ModLocationCache
data Target
data TargetId
pprTarget
pprTargetId
type ModuleGraph
emptyMG

# Information about modules

data ModDetails
emptyModDetails
data ModGuts
data CoreModule
data CgGuts
data ForeignStubs
type ImportedMods
data ModSummary
ms_mod_name
showModMsg
isBootSummary
msHsFilePath
msHiFilePath
msObjFilePath

# Information about the module being compiled

data HscSource
isHsBoot
hscSourceString

# State relating to modules in this package

type HomePackageTable
data HomeModInfo
emptyHomePackageTable
hptInstances
hptRules
hptVectInfo

# State relating to known packages

data ExternalPackageState
data EpsStats
addEpsInStats
type PackageTypeEnv
type PackageIfaceTable
emptyPackageIfaceTable
lookupIfaceByModule
emptyModIface
type PackageInstEnv
type PackageRuleBase

# Interactive context

data InteractiveContext
emptyInteractiveContext
icPrintUnqual
mkPrintUnqualified
extendInteractiveContext
substInteractiveContext

# Interfaces

data ModIface
mkIfaceWarnCache
mkIfaceHashCache
mkIfaceFixCache
emptyIfaceWarnCache

# Fixity

type FixityEnv
data FixItem
lookupFixity
emptyFixityEnv

# TyThings and type environments

data TyThing
tyThingClass
tyThingTyCon
tyThingDataCon
tyThingId
implicitTyThings
isImplicitTyThing
type TypeEnv
lookupType
lookupTypeHscEnv
mkTypeEnv
emptyTypeEnv
extendTypeEnv
extendTypeEnvList
extendTypeEnvWithIds
lookupTypeEnv
typeEnvElts
typeEnvClasses
typeEnvTyCons
typeEnvIds
typeEnvDataCons

# MonadThings

class MonadThings m

# Information on imports and exports

type WhetherHasOrphans
type IsBootInterface
data Usage
data Dependencies
noDependencies
data NameCache
type OrigNameCache
type OrigIParamCache
type Avails
availsToNameSet
availsToNameEnv
availName
availNames
data GenAvailInfo name
type AvailInfo
type RdrAvailInfo
type IfaceExport

# Warnings

data Warnings
data WarningTxt
plusWarns

# Linker stuff

data Linkable
isObjectLinkable
data Unlinked
data CompiledByteCode
isObject
nameOfObject
isInterpretable
byteCodeOfObject

# Program coverage

data HpcInfo
emptyHpcInfo
isHpcUsed
type AnyHpcUsage

# Breakpoints

data ModBreaks
type BreakIndex
emptyModBreaks

# Vectorisation information

data VectInfo
data IfaceVectInfo
noVectInfo
plusVectInfo
noIfaceVectInfo