Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > da2ed07af0cf0f424d74f4cc6829a27c > files > 973

ghc-ghc-devel-6.12.3-8.6.fc14.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--Rendered using the Haskell Html Library v0.2-->
<HTML
><HEAD
><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
><TITLE
>HscTypes</TITLE
><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
></SCRIPT
><SCRIPT TYPE="text/javascript"
>window.onload = function () {setSynopsis("mini_HscTypes.html")};</SCRIPT
></HEAD
><BODY
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="topbar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
></TD
><TD CLASS="title"
>ghc-6.12.3: The GHC API</TD
><TD CLASS="topbut"
><A HREF="index.html"
>Contents</A
></TD
><TD CLASS="topbut"
><A HREF="doc-index.html"
>Index</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="modulebar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><FONT SIZE="6"
>HscTypes</FONT
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="section4"
><B
>Contents</B
></TD
></TR
><TR
><TD
><DL
><DT
><A HREF="#1"
><TT
><A HREF="HscTypes.html#t%3AGhc"
>Ghc</A
></TT
> monad stuff
</A
></DT
><DT
><A HREF="#2"
>Sessions and compilation state
</A
></DT
><DD
><DL
><DT
><A HREF="#3"
>Callbacks
</A
></DT
></DL
></DD
><DT
><A HREF="#4"
>Information about modules
</A
></DT
><DT
><A HREF="#5"
>Information about the module being compiled
</A
></DT
><DT
><A HREF="#6"
>State relating to modules in this package
</A
></DT
><DT
><A HREF="#7"
>State relating to known packages
</A
></DT
><DT
><A HREF="#8"
>Annotations
</A
></DT
><DT
><A HREF="#9"
>Interactive context
</A
></DT
><DT
><A HREF="#10"
>Interfaces
</A
></DT
><DT
><A HREF="#11"
>Fixity
</A
></DT
><DT
><A HREF="#12"
>TyThings and type environments
</A
></DT
><DT
><A HREF="#13"
>MonadThings
</A
></DT
><DT
><A HREF="#14"
>Information on imports and exports
</A
></DT
><DT
><A HREF="#15"
>Warnings
</A
></DT
><DT
><A HREF="#16"
>Linker stuff
</A
></DT
><DT
><A HREF="#17"
>Program coverage
</A
></DT
><DT
><A HREF="#18"
>Breakpoints
</A
></DT
><DT
><A HREF="#19"
>Vectorisation information
</A
></DT
></DL
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Description</TD
></TR
><TR
><TD CLASS="doc"
>Types for the per-module compiler
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Synopsis</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A HREF="#t%3AGhc"
>Ghc</A
> a = <A HREF="#v%3AGhc"
>Ghc</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AunGhc"
>unGhc</A
> :: <A HREF="HscTypes.html#t%3ASession"
>Session</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> a</TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A HREF="#t%3AGhcT"
>GhcT</A
> m a = <A HREF="#v%3AGhcT"
>GhcT</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AunGhcT"
>unGhcT</A
> :: <A HREF="HscTypes.html#t%3ASession"
>Session</A
> -&gt; m a</TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AliftGhcT"
>liftGhcT</A
> :: <A HREF="../base-4.2.0.2/Control-Monad.html#t%3AMonad"
>Monad</A
> m =&gt; m a -&gt; <A HREF="HscTypes.html#t%3AGhcT"
>GhcT</A
> m a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
> (<A HREF="../base-4.2.0.2/Control-Monad.html#t%3AFunctor"
>Functor</A
> m, <A HREF="MonadUtils.html#t%3AMonadIO"
>MonadIO</A
> m, <A HREF="HscTypes.html#t%3AWarnLogMonad"
>WarnLogMonad</A
> m, <A HREF="Exception.html#t%3AExceptionMonad"
>ExceptionMonad</A
> m) =&gt; <A HREF="#t%3AGhcMonad"
>GhcMonad</A
> m  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="#v%3AgetSession"
>getSession</A
> :: m <A HREF="HscTypes.html#t%3AHscEnv"
>HscEnv</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsetSession"
>setSession</A
> :: <A HREF="HscTypes.html#t%3AHscEnv"
>HscEnv</A
> -&gt; m <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
> <A HREF="../base-4.2.0.2/Control-Monad.html#t%3AMonad"
>Monad</A
> m =&gt; <A HREF="#t%3AWarnLogMonad"
>WarnLogMonad</A
> m  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="#v%3AsetWarnings"
>setWarnings</A
> :: <A HREF="ErrUtils.html#t%3AWarningMessages"
>WarningMessages</A
> -&gt; m <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AgetWarnings"
>getWarnings</A
> :: m <A HREF="ErrUtils.html#t%3AWarningMessages"
>WarningMessages</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AliftIO"
>liftIO</A
> :: <A HREF="MonadUtils.html#t%3AMonadIO"
>MonadIO</A
> m =&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> a -&gt; m a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AioMsgMaybe"
>ioMsgMaybe</A
> :: <A HREF="HscTypes.html#t%3AGhcMonad"
>GhcMonad</A
> m =&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="ErrUtils.html#t%3AMessages"
>Messages</A
>, <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> a) -&gt; m a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AioMsg"
>ioMsg</A
> :: <A HREF="HscTypes.html#t%3AGhcMonad"
>GhcMonad</A
> m =&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="ErrUtils.html#t%3AMessages"
>Messages</A
>, a) -&gt; m a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AlogWarnings"
>logWarnings</A
> :: <A HREF="HscTypes.html#t%3AWarnLogMonad"
>WarnLogMonad</A
> m =&gt; <A HREF="ErrUtils.html#t%3AWarningMessages"
>WarningMessages</A
> -&gt; m <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AclearWarnings"
>clearWarnings</A
> :: <A HREF="HscTypes.html#t%3AWarnLogMonad"
>WarnLogMonad</A
> m =&gt; m <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AhasWarnings"
>hasWarnings</A
> :: <A HREF="HscTypes.html#t%3AWarnLogMonad"
>WarnLogMonad</A
> m =&gt; m <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ASourceError"
>SourceError</A
> </TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AGhcApiError"
>GhcApiError</A
> </TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkSrcErr"
>mkSrcErr</A
> :: <A HREF="ErrUtils.html#t%3AErrorMessages"
>ErrorMessages</A
> -&gt; <A HREF="HscTypes.html#t%3ASourceError"
>SourceError</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsrcErrorMessages"
>srcErrorMessages</A
> :: <A HREF="HscTypes.html#t%3ASourceError"
>SourceError</A
> -&gt; <A HREF="ErrUtils.html#t%3AErrorMessages"
>ErrorMessages</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkApiErr"
>mkApiErr</A
> :: <A HREF="Outputable.html#t%3ASDoc"
>SDoc</A
> -&gt; <A HREF="HscTypes.html#t%3AGhcApiError"
>GhcApiError</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AthrowOneError"
>throwOneError</A
> :: <A HREF="MonadUtils.html#t%3AMonadIO"
>MonadIO</A
> m =&gt; <A HREF="ErrUtils.html#t%3AErrMsg"
>ErrMsg</A
> -&gt; m ab</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AhandleSourceError"
>handleSourceError</A
> :: <A HREF="Exception.html#t%3AExceptionMonad"
>ExceptionMonad</A
> m =&gt; (<A HREF="HscTypes.html#t%3ASourceError"
>SourceError</A
> -&gt; m a) -&gt; m a -&gt; m a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AreflectGhc"
>reflectGhc</A
> ::  <A HREF="HscTypes.html#t%3AGhc"
>Ghc</A
> a -&gt; <A HREF="HscTypes.html#t%3ASession"
>Session</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AreifyGhc"
>reifyGhc</A
> ::  (<A HREF="HscTypes.html#t%3ASession"
>Session</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> a) -&gt; <A HREF="HscTypes.html#t%3AGhc"
>Ghc</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AhandleFlagWarnings"
>handleFlagWarnings</A
> :: <A HREF="HscTypes.html#t%3AGhcMonad"
>GhcMonad</A
> m =&gt; <A HREF="DynFlags.html#t%3ADynFlags"
>DynFlags</A
> -&gt; [<A HREF="SrcLoc.html#t%3ALocated"
>Located</A
> <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>] -&gt; m <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ASession"
>Session</A
>  = <A HREF="#v%3ASession"
>Session</A
> !(<A HREF="IOEnv.html#t%3AIORef"
>IORef</A
> <A HREF="HscTypes.html#t%3AHscEnv"
>HscEnv</A
>) !(<A HREF="IOEnv.html#t%3AIORef"
>IORef</A
> <A HREF="ErrUtils.html#t%3AWarningMessages"
>WarningMessages</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AwithSession"
>withSession</A
> :: <A HREF="HscTypes.html#t%3AGhcMonad"
>GhcMonad</A
> m =&gt; (<A HREF="HscTypes.html#t%3AHscEnv"
>HscEnv</A
> -&gt; m a) -&gt; m a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmodifySession"
>modifySession</A
> :: <A HREF="HscTypes.html#t%3AGhcMonad"
>GhcMonad</A
> m =&gt; (<A HREF="HscTypes.html#t%3AHscEnv"
>HscEnv</A
> -&gt; <A HREF="HscTypes.html#t%3AHscEnv"
>HscEnv</A
>) -&gt; m <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AwithTempSession"
>withTempSession</A
> :: <A HREF="HscTypes.html#t%3AGhcMonad"
>GhcMonad</A
> m =&gt; (<A HREF="HscTypes.html#t%3AHscEnv"
>HscEnv</A
> -&gt; <A HREF="HscTypes.html#t%3AHscEnv"
>HscEnv</A
>) -&gt; m a -&gt; m a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AHscEnv"
>HscEnv</A
>  = <A HREF="#v%3AHscEnv"
>HscEnv</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ahsc_dflags"
>hsc_dflags</A
> :: <A HREF="DynFlags.html#t%3ADynFlags"
>DynFlags</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ahsc_callbacks"
>hsc_callbacks</A
> :: <A HREF="HscTypes.html#t%3AGhcApiCallbacks"
>GhcApiCallbacks</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ahsc_targets"
>hsc_targets</A
> :: [<A HREF="HscTypes.html#t%3ATarget"
>Target</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ahsc_mod_graph"
>hsc_mod_graph</A
> :: <A HREF="HscTypes.html#t%3AModuleGraph"
>ModuleGraph</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ahsc_IC"
>hsc_IC</A
> :: <A HREF="HscTypes.html#t%3AInteractiveContext"
>InteractiveContext</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ahsc_HPT"
>hsc_HPT</A
> :: <A HREF="HscTypes.html#t%3AHomePackageTable"
>HomePackageTable</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ahsc_EPS"
>hsc_EPS</A
> :: !(<A HREF="IOEnv.html#t%3AIORef"
>IORef</A
> <A HREF="HscTypes.html#t%3AExternalPackageState"
>ExternalPackageState</A
>)</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ahsc_NC"
>hsc_NC</A
> :: !(<A HREF="IOEnv.html#t%3AIORef"
>IORef</A
> <A HREF="HscTypes.html#t%3ANameCache"
>NameCache</A
>)</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ahsc_FC"
>hsc_FC</A
> :: !(<A HREF="IOEnv.html#t%3AIORef"
>IORef</A
> <A HREF="HscTypes.html#t%3AFinderCache"
>FinderCache</A
>)</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ahsc_MLC"
>hsc_MLC</A
> :: !(<A HREF="IOEnv.html#t%3AIORef"
>IORef</A
> <A HREF="HscTypes.html#t%3AModLocationCache"
>ModLocationCache</A
>)</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ahsc_OptFuel"
>hsc_OptFuel</A
> :: <A HREF="OptimizationFuel.html#t%3AOptFuelState"
>OptFuelState</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ahsc_type_env_var"
>hsc_type_env_var</A
> :: <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (<A HREF="Module.html#t%3AModule"
>Module</A
>, <A HREF="IOEnv.html#t%3AIORef"
>IORef</A
> <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
>)</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ahsc_global_rdr_env"
>hsc_global_rdr_env</A
> :: <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ahsc_global_type_env"
>hsc_global_type_env</A
> :: <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AhscEPS"
>hscEPS</A
> :: <A HREF="HscTypes.html#t%3AHscEnv"
>HscEnv</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="HscTypes.html#t%3AExternalPackageState"
>ExternalPackageState</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AFinderCache"
>FinderCache</A
> = <A HREF="Module.html#t%3AModuleNameEnv"
>ModuleNameEnv</A
> <A HREF="HscTypes.html#t%3AFindResult"
>FindResult</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AFindResult"
>FindResult</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AFound"
>Found</A
> <A HREF="Module.html#t%3AModLocation"
>ModLocation</A
> <A HREF="Module.html#t%3AModule"
>Module</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3ANoPackage"
>NoPackage</A
> <A HREF="Module.html#t%3APackageId"
>PackageId</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AFoundMultiple"
>FoundMultiple</A
> [<A HREF="Module.html#t%3APackageId"
>PackageId</A
>]</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3ANotFound"
>NotFound</A
> [<A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
>] (<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Module.html#t%3APackageId"
>PackageId</A
>) [<A HREF="Module.html#t%3APackageId"
>PackageId</A
>] [<A HREF="Module.html#t%3APackageId"
>PackageId</A
>]</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3ANotFoundInPackage"
>NotFoundInPackage</A
> <A HREF="Module.html#t%3APackageId"
>PackageId</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AModLocationCache"
>ModLocationCache</A
> = <A HREF="Module.html#t%3AModuleEnv"
>ModuleEnv</A
> <A HREF="Module.html#t%3AModLocation"
>ModLocation</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ATarget"
>Target</A
>  = <A HREF="#v%3ATarget"
>Target</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AtargetId"
>targetId</A
> :: <A HREF="HscTypes.html#t%3ATargetId"
>TargetId</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AtargetAllowObjCode"
>targetAllowObjCode</A
> :: <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AtargetContents"
>targetContents</A
> :: <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (<A HREF="StringBuffer.html#t%3AStringBuffer"
>StringBuffer</A
>, <A HREF="../old-time-1.0.0.5/System-Time.html#t%3AClockTime"
>ClockTime</A
>)</TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ATargetId"
>TargetId</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3ATargetModule"
>TargetModule</A
> <A HREF="Module.html#t%3AModuleName"
>ModuleName</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3ATargetFile"
>TargetFile</A
> <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
> (<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="DriverPhases.html#t%3APhase"
>Phase</A
>)</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ApprTarget"
>pprTarget</A
> :: <A HREF="HscTypes.html#t%3ATarget"
>Target</A
> -&gt; <A HREF="Outputable.html#t%3ASDoc"
>SDoc</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ApprTargetId"
>pprTargetId</A
> :: <A HREF="HscTypes.html#t%3ATargetId"
>TargetId</A
> -&gt; <A HREF="Outputable.html#t%3ASDoc"
>SDoc</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AModuleGraph"
>ModuleGraph</A
> = [<A HREF="HscTypes.html#t%3AModSummary"
>ModSummary</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AemptyMG"
>emptyMG</A
> :: <A HREF="HscTypes.html#t%3AModuleGraph"
>ModuleGraph</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AGhcApiCallbacks"
>GhcApiCallbacks</A
>  = <A HREF="#v%3AGhcApiCallbacks"
>GhcApiCallbacks</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AreportModuleCompilationResult"
>reportModuleCompilationResult</A
> :: <A HREF="HscTypes.html#t%3AGhcMonad"
>GhcMonad</A
> m =&gt; <A HREF="HscTypes.html#t%3AModSummary"
>ModSummary</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="HscTypes.html#t%3ASourceError"
>SourceError</A
> -&gt; m <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AwithLocalCallbacks"
>withLocalCallbacks</A
> :: <A HREF="HscTypes.html#t%3AGhcMonad"
>GhcMonad</A
> m =&gt; (<A HREF="HscTypes.html#t%3AGhcApiCallbacks"
>GhcApiCallbacks</A
> -&gt; <A HREF="HscTypes.html#t%3AGhcApiCallbacks"
>GhcApiCallbacks</A
>) -&gt; m a -&gt; m a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AModDetails"
>ModDetails</A
>  = <A HREF="#v%3AModDetails"
>ModDetails</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3Amd_exports"
>md_exports</A
> :: [<A HREF="HscTypes.html#t%3AAvailInfo"
>AvailInfo</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Amd_types"
>md_types</A
> :: !<A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Amd_insts"
>md_insts</A
> :: ![<A HREF="InstEnv.html#t%3AInstance"
>Instance</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Amd_fam_insts"
>md_fam_insts</A
> :: ![<A HREF="FamInstEnv.html#t%3AFamInst"
>FamInst</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Amd_rules"
>md_rules</A
> :: ![<A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Amd_anns"
>md_anns</A
> :: ![<A HREF="Annotations.html#t%3AAnnotation"
>Annotation</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Amd_vect_info"
>md_vect_info</A
> :: !<A HREF="HscTypes.html#t%3AVectInfo"
>VectInfo</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AemptyModDetails"
>emptyModDetails</A
> :: <A HREF="HscTypes.html#t%3AModDetails"
>ModDetails</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AModGuts"
>ModGuts</A
>  = <A HREF="#v%3AModGuts"
>ModGuts</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3Amg_module"
>mg_module</A
> :: !<A HREF="Module.html#t%3AModule"
>Module</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Amg_boot"
>mg_boot</A
> :: <A HREF="HscTypes.html#t%3AIsBootInterface"
>IsBootInterface</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Amg_exports"
>mg_exports</A
> :: ![<A HREF="HscTypes.html#t%3AAvailInfo"
>AvailInfo</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Amg_deps"
>mg_deps</A
> :: !<A HREF="HscTypes.html#t%3ADependencies"
>Dependencies</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Amg_dir_imps"
>mg_dir_imps</A
> :: !<A HREF="HscTypes.html#t%3AImportedMods"
>ImportedMods</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Amg_used_names"
>mg_used_names</A
> :: !<A HREF="NameSet.html#t%3ANameSet"
>NameSet</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Amg_rdr_env"
>mg_rdr_env</A
> :: !<A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Amg_fix_env"
>mg_fix_env</A
> :: !<A HREF="HscTypes.html#t%3AFixityEnv"
>FixityEnv</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Amg_types"
>mg_types</A
> :: !<A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Amg_insts"
>mg_insts</A
> :: ![<A HREF="InstEnv.html#t%3AInstance"
>Instance</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Amg_fam_insts"
>mg_fam_insts</A
> :: ![<A HREF="FamInstEnv.html#t%3AFamInst"
>FamInst</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Amg_rules"
>mg_rules</A
> :: ![<A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Amg_binds"
>mg_binds</A
> :: ![<A HREF="CoreSyn.html#t%3ACoreBind"
>CoreBind</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Amg_foreign"
>mg_foreign</A
> :: !<A HREF="HscTypes.html#t%3AForeignStubs"
>ForeignStubs</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Amg_warns"
>mg_warns</A
> :: !<A HREF="HscTypes.html#t%3AWarnings"
>Warnings</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Amg_anns"
>mg_anns</A
> :: [<A HREF="Annotations.html#t%3AAnnotation"
>Annotation</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Amg_hpc_info"
>mg_hpc_info</A
> :: !<A HREF="HscTypes.html#t%3AHpcInfo"
>HpcInfo</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Amg_modBreaks"
>mg_modBreaks</A
> :: !<A HREF="HscTypes.html#t%3AModBreaks"
>ModBreaks</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Amg_vect_info"
>mg_vect_info</A
> :: !<A HREF="HscTypes.html#t%3AVectInfo"
>VectInfo</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Amg_inst_env"
>mg_inst_env</A
> :: <A HREF="InstEnv.html#t%3AInstEnv"
>InstEnv</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Amg_fam_inst_env"
>mg_fam_inst_env</A
> :: <A HREF="FamInstEnv.html#t%3AFamInstEnv"
>FamInstEnv</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ACoreModule"
>CoreModule</A
>  = <A HREF="#v%3ACoreModule"
>CoreModule</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3Acm_module"
>cm_module</A
> :: !<A HREF="Module.html#t%3AModule"
>Module</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Acm_types"
>cm_types</A
> :: !<A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Acm_binds"
>cm_binds</A
> :: [<A HREF="CoreSyn.html#t%3ACoreBind"
>CoreBind</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Acm_imports"
>cm_imports</A
> :: ![<A HREF="Module.html#t%3AModule"
>Module</A
>]</TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ACgGuts"
>CgGuts</A
>  = <A HREF="#v%3ACgGuts"
>CgGuts</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3Acg_module"
>cg_module</A
> :: !<A HREF="Module.html#t%3AModule"
>Module</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Acg_tycons"
>cg_tycons</A
> :: [<A HREF="TyCon.html#t%3ATyCon"
>TyCon</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Acg_binds"
>cg_binds</A
> :: [<A HREF="CoreSyn.html#t%3ACoreBind"
>CoreBind</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Acg_dir_imps"
>cg_dir_imps</A
> :: ![<A HREF="Module.html#t%3AModule"
>Module</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Acg_foreign"
>cg_foreign</A
> :: !<A HREF="HscTypes.html#t%3AForeignStubs"
>ForeignStubs</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Acg_dep_pkgs"
>cg_dep_pkgs</A
> :: ![<A HREF="Module.html#t%3APackageId"
>PackageId</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Acg_hpc_info"
>cg_hpc_info</A
> :: !<A HREF="HscTypes.html#t%3AHpcInfo"
>HpcInfo</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Acg_modBreaks"
>cg_modBreaks</A
> :: !<A HREF="HscTypes.html#t%3AModBreaks"
>ModBreaks</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AForeignStubs"
>ForeignStubs</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3ANoStubs"
>NoStubs</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AForeignStubs"
>ForeignStubs</A
> <A HREF="Outputable.html#t%3ASDoc"
>SDoc</A
> <A HREF="Outputable.html#t%3ASDoc"
>SDoc</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AImportedMods"
>ImportedMods</A
> = <A HREF="Module.html#t%3AModuleEnv"
>ModuleEnv</A
> [(<A HREF="Module.html#t%3AModuleName"
>ModuleName</A
>, <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
>, <A HREF="SrcLoc.html#t%3ASrcSpan"
>SrcSpan</A
>)]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AModSummary"
>ModSummary</A
>  = <A HREF="#v%3AModSummary"
>ModSummary</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ams_mod"
>ms_mod</A
> :: <A HREF="Module.html#t%3AModule"
>Module</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ams_hsc_src"
>ms_hsc_src</A
> :: <A HREF="HscTypes.html#t%3AHscSource"
>HscSource</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ams_location"
>ms_location</A
> :: <A HREF="Module.html#t%3AModLocation"
>ModLocation</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ams_hs_date"
>ms_hs_date</A
> :: <A HREF="../old-time-1.0.0.5/System-Time.html#t%3AClockTime"
>ClockTime</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ams_obj_date"
>ms_obj_date</A
> :: <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="../old-time-1.0.0.5/System-Time.html#t%3AClockTime"
>ClockTime</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ams_srcimps"
>ms_srcimps</A
> :: [<A HREF="SrcLoc.html#t%3ALocated"
>Located</A
> (<A HREF="HsImpExp.html#t%3AImportDecl"
>ImportDecl</A
> <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
>)]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ams_imps"
>ms_imps</A
> :: [<A HREF="SrcLoc.html#t%3ALocated"
>Located</A
> (<A HREF="HsImpExp.html#t%3AImportDecl"
>ImportDecl</A
> <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
>)]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ams_hspp_file"
>ms_hspp_file</A
> :: <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ams_hspp_opts"
>ms_hspp_opts</A
> :: <A HREF="DynFlags.html#t%3ADynFlags"
>DynFlags</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ams_hspp_buf"
>ms_hspp_buf</A
> :: <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="StringBuffer.html#t%3AStringBuffer"
>StringBuffer</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Ams_mod_name"
>ms_mod_name</A
> :: <A HREF="HscTypes.html#t%3AModSummary"
>ModSummary</A
> -&gt; <A HREF="Module.html#t%3AModuleName"
>ModuleName</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AshowModMsg"
>showModMsg</A
> :: <A HREF="DynFlags.html#t%3AHscTarget"
>HscTarget</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
> -&gt; <A HREF="HscTypes.html#t%3AModSummary"
>ModSummary</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisBootSummary"
>isBootSummary</A
> :: <A HREF="HscTypes.html#t%3AModSummary"
>ModSummary</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmsHsFilePath"
>msHsFilePath</A
> :: <A HREF="HscTypes.html#t%3AModSummary"
>ModSummary</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmsHiFilePath"
>msHiFilePath</A
> :: <A HREF="HscTypes.html#t%3AModSummary"
>ModSummary</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmsObjFilePath"
>msObjFilePath</A
> :: <A HREF="HscTypes.html#t%3AModSummary"
>ModSummary</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AHscSource"
>HscSource</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AHsSrcFile"
>HsSrcFile</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsBootFile"
>HsBootFile</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AExtCoreFile"
>ExtCoreFile</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisHsBoot"
>isHsBoot</A
> :: <A HREF="HscTypes.html#t%3AHscSource"
>HscSource</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AhscSourceString"
>hscSourceString</A
> :: <A HREF="HscTypes.html#t%3AHscSource"
>HscSource</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AHomePackageTable"
>HomePackageTable</A
> = <A HREF="Module.html#t%3AModuleNameEnv"
>ModuleNameEnv</A
> <A HREF="HscTypes.html#t%3AHomeModInfo"
>HomeModInfo</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AHomeModInfo"
>HomeModInfo</A
>  = <A HREF="#v%3AHomeModInfo"
>HomeModInfo</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ahm_iface"
>hm_iface</A
> :: !<A HREF="HscTypes.html#t%3AModIface"
>ModIface</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ahm_details"
>hm_details</A
> :: !<A HREF="HscTypes.html#t%3AModDetails"
>ModDetails</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ahm_linkable"
>hm_linkable</A
> :: !(<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="HscTypes.html#t%3ALinkable"
>Linkable</A
>)</TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AemptyHomePackageTable"
>emptyHomePackageTable</A
> :: <A HREF="HscTypes.html#t%3AHomePackageTable"
>HomePackageTable</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AhptInstances"
>hptInstances</A
> :: <A HREF="HscTypes.html#t%3AHscEnv"
>HscEnv</A
> -&gt; (<A HREF="Module.html#t%3AModuleName"
>ModuleName</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
>) -&gt; ([<A HREF="InstEnv.html#t%3AInstance"
>Instance</A
>], [<A HREF="FamInstEnv.html#t%3AFamInst"
>FamInst</A
>])</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AhptRules"
>hptRules</A
> :: <A HREF="HscTypes.html#t%3AHscEnv"
>HscEnv</A
> -&gt; [(<A HREF="Module.html#t%3AModuleName"
>ModuleName</A
>, <A HREF="HscTypes.html#t%3AIsBootInterface"
>IsBootInterface</A
>)] -&gt; [<A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AhptVectInfo"
>hptVectInfo</A
> :: <A HREF="HscTypes.html#t%3AHscEnv"
>HscEnv</A
> -&gt; <A HREF="HscTypes.html#t%3AVectInfo"
>VectInfo</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AExternalPackageState"
>ExternalPackageState</A
>  = <A HREF="#v%3AEPS"
>EPS</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3Aeps_is_boot"
>eps_is_boot</A
> :: !(<A HREF="Module.html#t%3AModuleNameEnv"
>ModuleNameEnv</A
> (<A HREF="Module.html#t%3AModuleName"
>ModuleName</A
>, <A HREF="HscTypes.html#t%3AIsBootInterface"
>IsBootInterface</A
>))</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Aeps_PIT"
>eps_PIT</A
> :: !<A HREF="HscTypes.html#t%3APackageIfaceTable"
>PackageIfaceTable</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Aeps_PTE"
>eps_PTE</A
> :: !<A HREF="HscTypes.html#t%3APackageTypeEnv"
>PackageTypeEnv</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Aeps_inst_env"
>eps_inst_env</A
> :: !<A HREF="HscTypes.html#t%3APackageInstEnv"
>PackageInstEnv</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Aeps_fam_inst_env"
>eps_fam_inst_env</A
> :: !PackageFamInstEnv</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Aeps_rule_base"
>eps_rule_base</A
> :: !<A HREF="HscTypes.html#t%3APackageRuleBase"
>PackageRuleBase</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Aeps_vect_info"
>eps_vect_info</A
> :: !PackageVectInfo</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Aeps_ann_env"
>eps_ann_env</A
> :: !PackageAnnEnv</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Aeps_mod_fam_inst_env"
>eps_mod_fam_inst_env</A
> :: !(<A HREF="Module.html#t%3AModuleEnv"
>ModuleEnv</A
> <A HREF="FamInstEnv.html#t%3AFamInstEnv"
>FamInstEnv</A
>)</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Aeps_stats"
>eps_stats</A
> :: !<A HREF="HscTypes.html#t%3AEpsStats"
>EpsStats</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AEpsStats"
>EpsStats</A
>  = <A HREF="#v%3AEpsStats"
>EpsStats</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3An_ifaces_in"
>n_ifaces_in</A
> :: !<A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3An_decls_in"
>n_decls_in</A
> :: !<A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3An_decls_out"
>n_decls_out</A
> :: !<A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3An_rules_in"
>n_rules_in</A
> :: !<A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3An_rules_out"
>n_rules_out</A
> :: !<A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3An_insts_in"
>n_insts_in</A
> :: !<A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3An_insts_out"
>n_insts_out</A
> :: !<A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AaddEpsInStats"
>addEpsInStats</A
> :: <A HREF="HscTypes.html#t%3AEpsStats"
>EpsStats</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="HscTypes.html#t%3AEpsStats"
>EpsStats</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3APackageTypeEnv"
>PackageTypeEnv</A
> = <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3APackageIfaceTable"
>PackageIfaceTable</A
> = <A HREF="Module.html#t%3AModuleEnv"
>ModuleEnv</A
> <A HREF="HscTypes.html#t%3AModIface"
>ModIface</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AemptyPackageIfaceTable"
>emptyPackageIfaceTable</A
> :: <A HREF="HscTypes.html#t%3APackageIfaceTable"
>PackageIfaceTable</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AlookupIfaceByModule"
>lookupIfaceByModule</A
> :: <A HREF="DynFlags.html#t%3ADynFlags"
>DynFlags</A
> -&gt; <A HREF="HscTypes.html#t%3AHomePackageTable"
>HomePackageTable</A
> -&gt; <A HREF="HscTypes.html#t%3APackageIfaceTable"
>PackageIfaceTable</A
> -&gt; <A HREF="Module.html#t%3AModule"
>Module</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="HscTypes.html#t%3AModIface"
>ModIface</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AemptyModIface"
>emptyModIface</A
> :: <A HREF="Module.html#t%3AModule"
>Module</A
> -&gt; <A HREF="HscTypes.html#t%3AModIface"
>ModIface</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3APackageInstEnv"
>PackageInstEnv</A
> = <A HREF="InstEnv.html#t%3AInstEnv"
>InstEnv</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3APackageRuleBase"
>PackageRuleBase</A
> = <A HREF="Rules.html#t%3ARuleBase"
>RuleBase</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AprepareAnnotations"
>prepareAnnotations</A
> :: <A HREF="HscTypes.html#t%3AHscEnv"
>HscEnv</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="HscTypes.html#t%3AModGuts"
>ModGuts</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="Annotations.html#t%3AAnnEnv"
>AnnEnv</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AInteractiveContext"
>InteractiveContext</A
>  = <A HREF="#v%3AInteractiveContext"
>InteractiveContext</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3Aic_toplev_scope"
>ic_toplev_scope</A
> :: [<A HREF="Module.html#t%3AModule"
>Module</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Aic_exports"
>ic_exports</A
> :: [<A HREF="Module.html#t%3AModule"
>Module</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Aic_rn_gbl_env"
>ic_rn_gbl_env</A
> :: <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Aic_tmp_ids"
>ic_tmp_ids</A
> :: [<A HREF="Var.html#t%3AId"
>Id</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Aic_tyvars"
>ic_tyvars</A
> :: <A HREF="VarSet.html#t%3ATyVarSet"
>TyVarSet</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Aic_resume"
>ic_resume</A
> :: [<A HREF="InteractiveEval.html#t%3AResume"
>Resume</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Aic_cwd"
>ic_cwd</A
> :: <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AemptyInteractiveContext"
>emptyInteractiveContext</A
> :: <A HREF="HscTypes.html#t%3AInteractiveContext"
>InteractiveContext</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AicPrintUnqual"
>icPrintUnqual</A
> :: <A HREF="DynFlags.html#t%3ADynFlags"
>DynFlags</A
> -&gt; <A HREF="HscTypes.html#t%3AInteractiveContext"
>InteractiveContext</A
> -&gt; <A HREF="Outputable.html#t%3APrintUnqualified"
>PrintUnqualified</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AextendInteractiveContext"
>extendInteractiveContext</A
> :: <A HREF="HscTypes.html#t%3AInteractiveContext"
>InteractiveContext</A
> -&gt; [<A HREF="Var.html#t%3AId"
>Id</A
>] -&gt; <A HREF="VarSet.html#t%3ATyVarSet"
>TyVarSet</A
> -&gt; <A HREF="HscTypes.html#t%3AInteractiveContext"
>InteractiveContext</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsubstInteractiveContext"
>substInteractiveContext</A
> :: <A HREF="HscTypes.html#t%3AInteractiveContext"
>InteractiveContext</A
> -&gt; <A HREF="Type.html#t%3ATvSubst"
>TvSubst</A
> -&gt; <A HREF="HscTypes.html#t%3AInteractiveContext"
>InteractiveContext</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkPrintUnqualified"
>mkPrintUnqualified</A
> :: <A HREF="DynFlags.html#t%3ADynFlags"
>DynFlags</A
> -&gt; <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
> -&gt; <A HREF="Outputable.html#t%3APrintUnqualified"
>PrintUnqualified</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ApprModulePrefix"
>pprModulePrefix</A
> :: <A HREF="Outputable.html#t%3APprStyle"
>PprStyle</A
> -&gt; <A HREF="Module.html#t%3AModule"
>Module</A
> -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="Outputable.html#t%3ASDoc"
>SDoc</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AModIface"
>ModIface</A
>  = <A HREF="#v%3AModIface"
>ModIface</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ami_module"
>mi_module</A
> :: !<A HREF="Module.html#t%3AModule"
>Module</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ami_iface_hash"
>mi_iface_hash</A
> :: !<A HREF="Fingerprint.html#t%3AFingerprint"
>Fingerprint</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ami_mod_hash"
>mi_mod_hash</A
> :: !<A HREF="Fingerprint.html#t%3AFingerprint"
>Fingerprint</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ami_orphan"
>mi_orphan</A
> :: !<A HREF="HscTypes.html#t%3AWhetherHasOrphans"
>WhetherHasOrphans</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ami_finsts"
>mi_finsts</A
> :: !WhetherHasFamInst</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ami_boot"
>mi_boot</A
> :: !<A HREF="HscTypes.html#t%3AIsBootInterface"
>IsBootInterface</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ami_deps"
>mi_deps</A
> :: <A HREF="HscTypes.html#t%3ADependencies"
>Dependencies</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ami_usages"
>mi_usages</A
> :: [<A HREF="HscTypes.html#t%3AUsage"
>Usage</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ami_exports"
>mi_exports</A
> :: ![<A HREF="HscTypes.html#t%3AIfaceExport"
>IfaceExport</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ami_exp_hash"
>mi_exp_hash</A
> :: !<A HREF="Fingerprint.html#t%3AFingerprint"
>Fingerprint</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ami_fixities"
>mi_fixities</A
> :: [(<A HREF="OccName.html#t%3AOccName"
>OccName</A
>, <A HREF="BasicTypes.html#t%3AFixity"
>Fixity</A
>)]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ami_warns"
>mi_warns</A
> :: <A HREF="HscTypes.html#t%3AWarnings"
>Warnings</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ami_anns"
>mi_anns</A
> :: [<A HREF="IfaceSyn.html#t%3AIfaceAnnotation"
>IfaceAnnotation</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ami_decls"
>mi_decls</A
> :: [(<A HREF="Fingerprint.html#t%3AFingerprint"
>Fingerprint</A
>, <A HREF="IfaceSyn.html#t%3AIfaceDecl"
>IfaceDecl</A
>)]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ami_globals"
>mi_globals</A
> :: !(<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
>)</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ami_insts"
>mi_insts</A
> :: [<A HREF="IfaceSyn.html#t%3AIfaceInst"
>IfaceInst</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ami_fam_insts"
>mi_fam_insts</A
> :: [<A HREF="IfaceSyn.html#t%3AIfaceFamInst"
>IfaceFamInst</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ami_rules"
>mi_rules</A
> :: [<A HREF="IfaceSyn.html#t%3AIfaceRule"
>IfaceRule</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ami_orphan_hash"
>mi_orphan_hash</A
> :: !<A HREF="Fingerprint.html#t%3AFingerprint"
>Fingerprint</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ami_vect_info"
>mi_vect_info</A
> :: !<A HREF="HscTypes.html#t%3AIfaceVectInfo"
>IfaceVectInfo</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ami_warn_fn"
>mi_warn_fn</A
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="HscTypes.html#t%3AWarningTxt"
>WarningTxt</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ami_fix_fn"
>mi_fix_fn</A
> :: <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="BasicTypes.html#t%3AFixity"
>Fixity</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ami_hash_fn"
>mi_hash_fn</A
> :: <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (<A HREF="OccName.html#t%3AOccName"
>OccName</A
>, <A HREF="Fingerprint.html#t%3AFingerprint"
>Fingerprint</A
>)</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ami_hpc"
>mi_hpc</A
> :: !<A HREF="HscTypes.html#t%3AAnyHpcUsage"
>AnyHpcUsage</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkIfaceWarnCache"
>mkIfaceWarnCache</A
> :: <A HREF="HscTypes.html#t%3AWarnings"
>Warnings</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="HscTypes.html#t%3AWarningTxt"
>WarningTxt</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkIfaceHashCache"
>mkIfaceHashCache</A
> :: [(<A HREF="Fingerprint.html#t%3AFingerprint"
>Fingerprint</A
>, <A HREF="IfaceSyn.html#t%3AIfaceDecl"
>IfaceDecl</A
>)] -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (<A HREF="OccName.html#t%3AOccName"
>OccName</A
>, <A HREF="Fingerprint.html#t%3AFingerprint"
>Fingerprint</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkIfaceFixCache"
>mkIfaceFixCache</A
> :: [(<A HREF="OccName.html#t%3AOccName"
>OccName</A
>, <A HREF="BasicTypes.html#t%3AFixity"
>Fixity</A
>)] -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="BasicTypes.html#t%3AFixity"
>Fixity</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AemptyIfaceWarnCache"
>emptyIfaceWarnCache</A
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="HscTypes.html#t%3AWarningTxt"
>WarningTxt</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AFixityEnv"
>FixityEnv</A
> = <A HREF="NameEnv.html#t%3ANameEnv"
>NameEnv</A
> <A HREF="HscTypes.html#t%3AFixItem"
>FixItem</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AFixItem"
>FixItem</A
>  = <A HREF="#v%3AFixItem"
>FixItem</A
> <A HREF="OccName.html#t%3AOccName"
>OccName</A
> <A HREF="BasicTypes.html#t%3AFixity"
>Fixity</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AlookupFixity"
>lookupFixity</A
> :: <A HREF="HscTypes.html#t%3AFixityEnv"
>FixityEnv</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="BasicTypes.html#t%3AFixity"
>Fixity</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AemptyFixityEnv"
>emptyFixityEnv</A
> :: <A HREF="HscTypes.html#t%3AFixityEnv"
>FixityEnv</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ATyThing"
>TyThing</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AAnId"
>AnId</A
> <A HREF="Var.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AADataCon"
>ADataCon</A
> <A HREF="DataCon.html#t%3ADataCon"
>DataCon</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AATyCon"
>ATyCon</A
> <A HREF="TyCon.html#t%3ATyCon"
>TyCon</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AAClass"
>AClass</A
> <A HREF="Class.html#t%3AClass"
>Class</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtyThingClass"
>tyThingClass</A
> :: <A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
> -&gt; <A HREF="Class.html#t%3AClass"
>Class</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtyThingTyCon"
>tyThingTyCon</A
> :: <A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
> -&gt; <A HREF="TyCon.html#t%3ATyCon"
>TyCon</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtyThingDataCon"
>tyThingDataCon</A
> :: <A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
> -&gt; <A HREF="DataCon.html#t%3ADataCon"
>DataCon</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtyThingId"
>tyThingId</A
> :: <A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
> -&gt; <A HREF="Var.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AimplicitTyThings"
>implicitTyThings</A
> :: <A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
> -&gt; [<A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisImplicitTyThing"
>isImplicitTyThing</A
> :: <A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3ATypeEnv"
>TypeEnv</A
> = <A HREF="NameEnv.html#t%3ANameEnv"
>NameEnv</A
> <A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AlookupType"
>lookupType</A
> :: <A HREF="DynFlags.html#t%3ADynFlags"
>DynFlags</A
> -&gt; <A HREF="HscTypes.html#t%3AHomePackageTable"
>HomePackageTable</A
> -&gt; <A HREF="HscTypes.html#t%3APackageTypeEnv"
>PackageTypeEnv</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AlookupTypeHscEnv"
>lookupTypeHscEnv</A
> :: <A HREF="HscTypes.html#t%3AHscEnv"
>HscEnv</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkTypeEnv"
>mkTypeEnv</A
> :: [<A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
>] -&gt; <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AemptyTypeEnv"
>emptyTypeEnv</A
> :: <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AextendTypeEnv"
>extendTypeEnv</A
> :: <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
> -&gt; <A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
> -&gt; <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AextendTypeEnvList"
>extendTypeEnvList</A
> :: <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
> -&gt; [<A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
>] -&gt; <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AextendTypeEnvWithIds"
>extendTypeEnvWithIds</A
> :: <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
> -&gt; [<A HREF="Var.html#t%3AId"
>Id</A
>] -&gt; <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AlookupTypeEnv"
>lookupTypeEnv</A
> :: <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtypeEnvElts"
>typeEnvElts</A
> :: <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
> -&gt; [<A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtypeEnvClasses"
>typeEnvClasses</A
> :: <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
> -&gt; [<A HREF="Class.html#t%3AClass"
>Class</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtypeEnvTyCons"
>typeEnvTyCons</A
> :: <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
> -&gt; [<A HREF="TyCon.html#t%3ATyCon"
>TyCon</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtypeEnvIds"
>typeEnvIds</A
> :: <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
> -&gt; [<A HREF="Var.html#t%3AId"
>Id</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtypeEnvDataCons"
>typeEnvDataCons</A
> :: <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
> -&gt; [<A HREF="DataCon.html#t%3ADataCon"
>DataCon</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
> <A HREF="../base-4.2.0.2/Control-Monad.html#t%3AMonad"
>Monad</A
> m =&gt; <A HREF="#t%3AMonadThings"
>MonadThings</A
> m  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="#v%3AlookupThing"
>lookupThing</A
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; m <A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AlookupId"
>lookupId</A
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; m <A HREF="Var.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AlookupDataCon"
>lookupDataCon</A
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; m <A HREF="DataCon.html#t%3ADataCon"
>DataCon</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AlookupTyCon"
>lookupTyCon</A
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; m <A HREF="TyCon.html#t%3ATyCon"
>TyCon</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AlookupClass"
>lookupClass</A
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; m <A HREF="Class.html#t%3AClass"
>Class</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AWhetherHasOrphans"
>WhetherHasOrphans</A
> = <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AIsBootInterface"
>IsBootInterface</A
> = <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AUsage"
>Usage</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AUsagePackageModule"
>UsagePackageModule</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ausg_mod"
>usg_mod</A
> :: <A HREF="Module.html#t%3AModule"
>Module</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ausg_mod_hash"
>usg_mod_hash</A
> :: <A HREF="Fingerprint.html#t%3AFingerprint"
>Fingerprint</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AUsageHomeModule"
>UsageHomeModule</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ausg_mod_name"
>usg_mod_name</A
> :: <A HREF="Module.html#t%3AModuleName"
>ModuleName</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ausg_mod_hash"
>usg_mod_hash</A
> :: <A HREF="Fingerprint.html#t%3AFingerprint"
>Fingerprint</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ausg_entities"
>usg_entities</A
> :: [(<A HREF="OccName.html#t%3AOccName"
>OccName</A
>, <A HREF="Fingerprint.html#t%3AFingerprint"
>Fingerprint</A
>)]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ausg_exports"
>usg_exports</A
> :: <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Fingerprint.html#t%3AFingerprint"
>Fingerprint</A
></TD
></TR
></TABLE
>}</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ADependencies"
>Dependencies</A
>  = <A HREF="#v%3ADeps"
>Deps</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3Adep_mods"
>dep_mods</A
> :: [(<A HREF="Module.html#t%3AModuleName"
>ModuleName</A
>, <A HREF="HscTypes.html#t%3AIsBootInterface"
>IsBootInterface</A
>)]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Adep_pkgs"
>dep_pkgs</A
> :: [<A HREF="Module.html#t%3APackageId"
>PackageId</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Adep_orphs"
>dep_orphs</A
> :: [<A HREF="Module.html#t%3AModule"
>Module</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Adep_finsts"
>dep_finsts</A
> :: [<A HREF="Module.html#t%3AModule"
>Module</A
>]</TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AnoDependencies"
>noDependencies</A
> :: <A HREF="HscTypes.html#t%3ADependencies"
>Dependencies</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ANameCache"
>NameCache</A
>  = <A HREF="#v%3ANameCache"
>NameCache</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AnsUniqs"
>nsUniqs</A
> :: <A HREF="UniqSupply.html#t%3AUniqSupply"
>UniqSupply</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AnsNames"
>nsNames</A
> :: <A HREF="HscTypes.html#t%3AOrigNameCache"
>OrigNameCache</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AnsIPs"
>nsIPs</A
> :: <A HREF="HscTypes.html#t%3AOrigIParamCache"
>OrigIParamCache</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AOrigNameCache"
>OrigNameCache</A
> = <A HREF="Module.html#t%3AModuleEnv"
>ModuleEnv</A
> (<A HREF="OccName.html#t%3AOccEnv"
>OccEnv</A
> <A HREF="Name.html#t%3AName"
>Name</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AOrigIParamCache"
>OrigIParamCache</A
> = <A HREF="FiniteMap.html#t%3AFiniteMap"
>FiniteMap</A
> (<A HREF="BasicTypes.html#t%3AIPName"
>IPName</A
> <A HREF="OccName.html#t%3AOccName"
>OccName</A
>) (<A HREF="BasicTypes.html#t%3AIPName"
>IPName</A
> <A HREF="Name.html#t%3AName"
>Name</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AAvails"
>Avails</A
> = [<A HREF="HscTypes.html#t%3AAvailInfo"
>AvailInfo</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AavailsToNameSet"
>availsToNameSet</A
> :: [<A HREF="HscTypes.html#t%3AAvailInfo"
>AvailInfo</A
>] -&gt; <A HREF="NameSet.html#t%3ANameSet"
>NameSet</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AavailsToNameEnv"
>availsToNameEnv</A
> :: [<A HREF="HscTypes.html#t%3AAvailInfo"
>AvailInfo</A
>] -&gt; <A HREF="NameEnv.html#t%3ANameEnv"
>NameEnv</A
> <A HREF="HscTypes.html#t%3AAvailInfo"
>AvailInfo</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AavailName"
>availName</A
> ::  <A HREF="HscTypes.html#t%3AGenAvailInfo"
>GenAvailInfo</A
> name -&gt; name</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AavailNames"
>availNames</A
> ::  <A HREF="HscTypes.html#t%3AGenAvailInfo"
>GenAvailInfo</A
> name -&gt; [name]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AGenAvailInfo"
>GenAvailInfo</A
> name </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AAvail"
>Avail</A
> name</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AAvailTC"
>AvailTC</A
> name [name]</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AAvailInfo"
>AvailInfo</A
> = <A HREF="HscTypes.html#t%3AGenAvailInfo"
>GenAvailInfo</A
> <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3ARdrAvailInfo"
>RdrAvailInfo</A
> = <A HREF="HscTypes.html#t%3AGenAvailInfo"
>GenAvailInfo</A
> <A HREF="OccName.html#t%3AOccName"
>OccName</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AIfaceExport"
>IfaceExport</A
> = (<A HREF="Module.html#t%3AModule"
>Module</A
>, [<A HREF="HscTypes.html#t%3AGenAvailInfo"
>GenAvailInfo</A
> <A HREF="OccName.html#t%3AOccName"
>OccName</A
>])</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AWarnings"
>Warnings</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3ANoWarnings"
>NoWarnings</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AWarnAll"
>WarnAll</A
> <A HREF="HscTypes.html#t%3AWarningTxt"
>WarningTxt</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AWarnSome"
>WarnSome</A
> [(<A HREF="OccName.html#t%3AOccName"
>OccName</A
>, <A HREF="HscTypes.html#t%3AWarningTxt"
>WarningTxt</A
>)]</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AWarningTxt"
>WarningTxt</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AWarningTxt"
>WarningTxt</A
> [<A HREF="FastString.html#t%3AFastString"
>FastString</A
>]</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3ADeprecatedTxt"
>DeprecatedTxt</A
> [<A HREF="FastString.html#t%3AFastString"
>FastString</A
>]</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AplusWarns"
>plusWarns</A
> :: <A HREF="HscTypes.html#t%3AWarnings"
>Warnings</A
> -&gt; <A HREF="HscTypes.html#t%3AWarnings"
>Warnings</A
> -&gt; <A HREF="HscTypes.html#t%3AWarnings"
>Warnings</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ALinkable"
>Linkable</A
>  = <A HREF="#v%3ALM"
>LM</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AlinkableTime"
>linkableTime</A
> :: <A HREF="../old-time-1.0.0.5/System-Time.html#t%3AClockTime"
>ClockTime</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AlinkableModule"
>linkableModule</A
> :: <A HREF="Module.html#t%3AModule"
>Module</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AlinkableUnlinked"
>linkableUnlinked</A
> :: [<A HREF="HscTypes.html#t%3AUnlinked"
>Unlinked</A
>]</TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisObjectLinkable"
>isObjectLinkable</A
> :: <A HREF="HscTypes.html#t%3ALinkable"
>Linkable</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AUnlinked"
>Unlinked</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3ADotO"
>DotO</A
> <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3ADotA"
>DotA</A
> <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3ADotDLL"
>DotDLL</A
> <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3ABCOs"
>BCOs</A
> <A HREF="HscTypes.html#t%3ACompiledByteCode"
>CompiledByteCode</A
> <A HREF="HscTypes.html#t%3AModBreaks"
>ModBreaks</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ACompiledByteCode"
>CompiledByteCode</A
> </TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisObject"
>isObject</A
> :: <A HREF="HscTypes.html#t%3AUnlinked"
>Unlinked</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AnameOfObject"
>nameOfObject</A
> :: <A HREF="HscTypes.html#t%3AUnlinked"
>Unlinked</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisInterpretable"
>isInterpretable</A
> :: <A HREF="HscTypes.html#t%3AUnlinked"
>Unlinked</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AbyteCodeOfObject"
>byteCodeOfObject</A
> :: <A HREF="HscTypes.html#t%3AUnlinked"
>Unlinked</A
> -&gt; <A HREF="HscTypes.html#t%3ACompiledByteCode"
>CompiledByteCode</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AHpcInfo"
>HpcInfo</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AHpcInfo"
>HpcInfo</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AhpcInfoTickCount"
>hpcInfoTickCount</A
> :: <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AhpcInfoHash"
>hpcInfoHash</A
> :: <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3ANoHpcInfo"
>NoHpcInfo</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AhpcUsed"
>hpcUsed</A
> :: <A HREF="HscTypes.html#t%3AAnyHpcUsage"
>AnyHpcUsage</A
></TD
></TR
></TABLE
>}</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AemptyHpcInfo"
>emptyHpcInfo</A
> :: <A HREF="HscTypes.html#t%3AAnyHpcUsage"
>AnyHpcUsage</A
> -&gt; <A HREF="HscTypes.html#t%3AHpcInfo"
>HpcInfo</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisHpcUsed"
>isHpcUsed</A
> :: <A HREF="HscTypes.html#t%3AHpcInfo"
>HpcInfo</A
> -&gt; <A HREF="HscTypes.html#t%3AAnyHpcUsage"
>AnyHpcUsage</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AAnyHpcUsage"
>AnyHpcUsage</A
> = <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AModBreaks"
>ModBreaks</A
>  = <A HREF="#v%3AModBreaks"
>ModBreaks</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AmodBreaks_flags"
>modBreaks_flags</A
> :: <A HREF="BreakArray.html#t%3ABreakArray"
>BreakArray</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AmodBreaks_locs"
>modBreaks_locs</A
> :: !(<A HREF="../array-0.3.0.1/Data-Array.html#t%3AArray"
>Array</A
> <A HREF="HscTypes.html#t%3ABreakIndex"
>BreakIndex</A
> <A HREF="SrcLoc.html#t%3ASrcSpan"
>SrcSpan</A
>)</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AmodBreaks_vars"
>modBreaks_vars</A
> :: !(<A HREF="../array-0.3.0.1/Data-Array.html#t%3AArray"
>Array</A
> <A HREF="HscTypes.html#t%3ABreakIndex"
>BreakIndex</A
> [<A HREF="OccName.html#t%3AOccName"
>OccName</A
>])</TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3ABreakIndex"
>BreakIndex</A
> = <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AemptyModBreaks"
>emptyModBreaks</A
> :: <A HREF="HscTypes.html#t%3AModBreaks"
>ModBreaks</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AVectInfo"
>VectInfo</A
>  = <A HREF="#v%3AVectInfo"
>VectInfo</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AvectInfoVar"
>vectInfoVar</A
> :: <A HREF="VarEnv.html#t%3AVarEnv"
>VarEnv</A
> (<A HREF="Var.html#t%3AVar"
>Var</A
>, <A HREF="Var.html#t%3AVar"
>Var</A
>)</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AvectInfoTyCon"
>vectInfoTyCon</A
> :: <A HREF="NameEnv.html#t%3ANameEnv"
>NameEnv</A
> (<A HREF="TyCon.html#t%3ATyCon"
>TyCon</A
>, <A HREF="TyCon.html#t%3ATyCon"
>TyCon</A
>)</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AvectInfoDataCon"
>vectInfoDataCon</A
> :: <A HREF="NameEnv.html#t%3ANameEnv"
>NameEnv</A
> (<A HREF="DataCon.html#t%3ADataCon"
>DataCon</A
>, <A HREF="DataCon.html#t%3ADataCon"
>DataCon</A
>)</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AvectInfoPADFun"
>vectInfoPADFun</A
> :: <A HREF="NameEnv.html#t%3ANameEnv"
>NameEnv</A
> (<A HREF="TyCon.html#t%3ATyCon"
>TyCon</A
>, <A HREF="Var.html#t%3AVar"
>Var</A
>)</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AvectInfoIso"
>vectInfoIso</A
> :: <A HREF="NameEnv.html#t%3ANameEnv"
>NameEnv</A
> (<A HREF="TyCon.html#t%3ATyCon"
>TyCon</A
>, <A HREF="Var.html#t%3AVar"
>Var</A
>)</TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AIfaceVectInfo"
>IfaceVectInfo</A
>  = <A HREF="#v%3AIfaceVectInfo"
>IfaceVectInfo</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AifaceVectInfoVar"
>ifaceVectInfoVar</A
> :: [<A HREF="Name.html#t%3AName"
>Name</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AifaceVectInfoTyCon"
>ifaceVectInfoTyCon</A
> :: [<A HREF="Name.html#t%3AName"
>Name</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AifaceVectInfoTyConReuse"
>ifaceVectInfoTyConReuse</A
> :: [<A HREF="Name.html#t%3AName"
>Name</A
>]</TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AnoVectInfo"
>noVectInfo</A
> :: <A HREF="HscTypes.html#t%3AVectInfo"
>VectInfo</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AplusVectInfo"
>plusVectInfo</A
> :: <A HREF="HscTypes.html#t%3AVectInfo"
>VectInfo</A
> -&gt; <A HREF="HscTypes.html#t%3AVectInfo"
>VectInfo</A
> -&gt; <A HREF="HscTypes.html#t%3AVectInfo"
>VectInfo</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AnoIfaceVectInfo"
>noIfaceVectInfo</A
> :: <A HREF="HscTypes.html#t%3AIfaceVectInfo"
>IfaceVectInfo</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="1"
><A NAME="1"
><TT
><A HREF="HscTypes.html#t%3AGhc"
>Ghc</A
></TT
> monad stuff
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A NAME="t:Ghc"
><A NAME="t%3AGhc"
></A
></A
><B
>Ghc</B
> a </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>A minimal implementation of a <TT
><A HREF="HscTypes.html#t%3AGhcMonad"
>GhcMonad</A
></TT
>.  If you need a custom monad,
 e.g., to maintain additional state consider wrapping this monad or using
 <TT
><A HREF="HscTypes.html#t%3AGhcT"
>GhcT</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:Ghc"
><A NAME="v%3AGhc"
></A
></A
><B
>Ghc</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:unGhc"
><A NAME="v%3AunGhc"
></A
></A
><B
>unGhc</B
> :: <A HREF="HscTypes.html#t%3ASession"
>Session</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> a</TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Ghc')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Ghc" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base-4.2.0.2/Control-Monad.html#t%3AMonad"
>Monad</A
> <A HREF="HscTypes.html#t%3AGhc"
>Ghc</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base-4.2.0.2/Control-Monad.html#t%3AFunctor"
>Functor</A
> <A HREF="HscTypes.html#t%3AGhc"
>Ghc</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="MonadUtils.html#t%3AMonadIO"
>MonadIO</A
> <A HREF="HscTypes.html#t%3AGhc"
>Ghc</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Exception.html#t%3AExceptionMonad"
>ExceptionMonad</A
> <A HREF="HscTypes.html#t%3AGhc"
>Ghc</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="HscTypes.html#t%3AGhcMonad"
>GhcMonad</A
> <A HREF="HscTypes.html#t%3AGhc"
>Ghc</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="HscTypes.html#t%3AWarnLogMonad"
>WarnLogMonad</A
> <A HREF="HscTypes.html#t%3AGhc"
>Ghc</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A NAME="t:GhcT"
><A NAME="t%3AGhcT"
></A
></A
><B
>GhcT</B
> m a </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>A monad transformer to add GHC specific features to another monad.
</P
><P
>Note that the wrapped monad must support IO and handling of exceptions.
</P
></TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:GhcT"
><A NAME="v%3AGhcT"
></A
></A
><B
>GhcT</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:unGhcT"
><A NAME="v%3AunGhcT"
></A
></A
><B
>unGhcT</B
> :: <A HREF="HscTypes.html#t%3ASession"
>Session</A
> -&gt; m a</TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:GhcT')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:GhcT" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base-4.2.0.2/Control-Monad.html#t%3AMonad"
>Monad</A
> m =&gt; <A HREF="../base-4.2.0.2/Control-Monad.html#t%3AMonad"
>Monad</A
> (<A HREF="HscTypes.html#t%3AGhcT"
>GhcT</A
> m)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base-4.2.0.2/Control-Monad.html#t%3AFunctor"
>Functor</A
> m =&gt; <A HREF="../base-4.2.0.2/Control-Monad.html#t%3AFunctor"
>Functor</A
> (<A HREF="HscTypes.html#t%3AGhcT"
>GhcT</A
> m)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="MonadUtils.html#t%3AMonadIO"
>MonadIO</A
> m =&gt; <A HREF="MonadUtils.html#t%3AMonadIO"
>MonadIO</A
> (<A HREF="HscTypes.html#t%3AGhcT"
>GhcT</A
> m)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Exception.html#t%3AExceptionMonad"
>ExceptionMonad</A
> m =&gt; <A HREF="Exception.html#t%3AExceptionMonad"
>ExceptionMonad</A
> (<A HREF="HscTypes.html#t%3AGhcT"
>GhcT</A
> m)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="../base-4.2.0.2/Control-Monad.html#t%3AFunctor"
>Functor</A
> m, <A HREF="Exception.html#t%3AExceptionMonad"
>ExceptionMonad</A
> m, <A HREF="MonadUtils.html#t%3AMonadIO"
>MonadIO</A
> m) =&gt; <A HREF="HscTypes.html#t%3AGhcMonad"
>GhcMonad</A
> (<A HREF="HscTypes.html#t%3AGhcT"
>GhcT</A
> m)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="MonadUtils.html#t%3AMonadIO"
>MonadIO</A
> m =&gt; <A HREF="HscTypes.html#t%3AWarnLogMonad"
>WarnLogMonad</A
> (<A HREF="HscTypes.html#t%3AGhcT"
>GhcT</A
> m)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:liftGhcT"
><A NAME="v%3AliftGhcT"
></A
></A
><B
>liftGhcT</B
> :: <A HREF="../base-4.2.0.2/Control-Monad.html#t%3AMonad"
>Monad</A
> m =&gt; m a -&gt; <A HREF="HscTypes.html#t%3AGhcT"
>GhcT</A
> m a</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
> (<A HREF="../base-4.2.0.2/Control-Monad.html#t%3AFunctor"
>Functor</A
> m, <A HREF="MonadUtils.html#t%3AMonadIO"
>MonadIO</A
> m, <A HREF="HscTypes.html#t%3AWarnLogMonad"
>WarnLogMonad</A
> m, <A HREF="Exception.html#t%3AExceptionMonad"
>ExceptionMonad</A
> m) =&gt; <A NAME="t:GhcMonad"
><A NAME="t%3AGhcMonad"
></A
></A
><B
>GhcMonad</B
> m  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>A monad that has all the features needed by GHC API calls.
</P
><P
>In short, a GHC monad
</P
><UL
><LI
> allows embedding of IO actions,
</LI
><LI
> can log warnings,
</LI
><LI
> allows handling of (extensible) exceptions, and
</LI
><LI
> maintains a current session.
</LI
></UL
><P
>If you do not use <TT
><A HREF="HscTypes.html#t%3AGhc"
>Ghc</A
></TT
> or <TT
><A HREF="HscTypes.html#t%3AGhcT"
>GhcT</A
></TT
>, make sure to call GHC.initGhcMonad
 before any call to the GHC API functions can occur.
</P
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
>Methods</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A NAME="v:getSession"
><A NAME="v%3AgetSession"
></A
></A
><B
>getSession</B
> :: m <A HREF="HscTypes.html#t%3AHscEnv"
>HscEnv</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:setSession"
><A NAME="v%3AsetSession"
></A
></A
><B
>setSession</B
> :: <A HREF="HscTypes.html#t%3AHscEnv"
>HscEnv</A
> -&gt; m <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:GhcMonad')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:GhcMonad" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="HscTypes.html#t%3AGhcMonad"
>GhcMonad</A
> <A HREF="HscTypes.html#t%3AGhc"
>Ghc</A
></TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="../base-4.2.0.2/Control-Monad.html#t%3AFunctor"
>Functor</A
> m, <A HREF="Exception.html#t%3AExceptionMonad"
>ExceptionMonad</A
> m, <A HREF="MonadUtils.html#t%3AMonadIO"
>MonadIO</A
> m) =&gt; <A HREF="HscTypes.html#t%3AGhcMonad"
>GhcMonad</A
> (<A HREF="HscTypes.html#t%3AGhcT"
>GhcT</A
> m)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
> <A HREF="../base-4.2.0.2/Control-Monad.html#t%3AMonad"
>Monad</A
> m =&gt; <A NAME="t:WarnLogMonad"
><A NAME="t%3AWarnLogMonad"
></A
></A
><B
>WarnLogMonad</B
> m  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>A monad that allows logging of warnings.
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
>Methods</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A NAME="v:setWarnings"
><A NAME="v%3AsetWarnings"
></A
></A
><B
>setWarnings</B
> :: <A HREF="ErrUtils.html#t%3AWarningMessages"
>WarningMessages</A
> -&gt; m <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:getWarnings"
><A NAME="v%3AgetWarnings"
></A
></A
><B
>getWarnings</B
> :: m <A HREF="ErrUtils.html#t%3AWarningMessages"
>WarningMessages</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:WarnLogMonad')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:WarnLogMonad" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="HscTypes.html#t%3AWarnLogMonad"
>WarnLogMonad</A
> <A HREF="HscTypes.html#t%3AGhc"
>Ghc</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="MonadUtils.html#t%3AMonadIO"
>MonadIO</A
> m =&gt; <A HREF="HscTypes.html#t%3AWarnLogMonad"
>WarnLogMonad</A
> (<A HREF="HscTypes.html#t%3AGhcT"
>GhcT</A
> m)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:liftIO"
><A NAME="v%3AliftIO"
></A
></A
><B
>liftIO</B
> :: <A HREF="MonadUtils.html#t%3AMonadIO"
>MonadIO</A
> m =&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> a -&gt; m a</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:ioMsgMaybe"
><A NAME="v%3AioMsgMaybe"
></A
></A
><B
>ioMsgMaybe</B
> :: <A HREF="HscTypes.html#t%3AGhcMonad"
>GhcMonad</A
> m =&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="ErrUtils.html#t%3AMessages"
>Messages</A
>, <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> a) -&gt; m a</TD
></TR
><TR
><TD CLASS="doc"
><P
>Lift an IO action returning errors messages into a <TT
><A HREF="HscTypes.html#t%3AGhcMonad"
>GhcMonad</A
></TT
>.
</P
><P
>In order to reduce dependencies to other parts of the compiler, functions
 outside the <A HREF="main.html"
>main</A
> parts of GHC return warnings and errors as a parameter
 and signal success via by wrapping the result in a <TT
><A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
></TT
> type.  This
 function logs the returned warnings and propagates errors as exceptions
 (of type <TT
><A HREF="HscTypes.html#t%3ASourceError"
>SourceError</A
></TT
>).
</P
><P
>This function assumes the following invariants:
</P
><P
>1. If the second result indicates success (is of the form 'Just x'),
     there must be no error messages in the first result.
</P
><P
>2. If there are no error messages, but the second result indicates failure
     there should be warnings in the first result.  That is, if the action
     failed, it must have been due to the warnings (i.e., <TT
>-Werror</TT
>).
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:ioMsg"
><A NAME="v%3AioMsg"
></A
></A
><B
>ioMsg</B
> :: <A HREF="HscTypes.html#t%3AGhcMonad"
>GhcMonad</A
> m =&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="ErrUtils.html#t%3AMessages"
>Messages</A
>, a) -&gt; m a</TD
></TR
><TR
><TD CLASS="doc"
><P
>Lift a non-failing IO action into a <TT
><A HREF="HscTypes.html#t%3AGhcMonad"
>GhcMonad</A
></TT
>.
</P
><P
>Like <TT
><A HREF="HscTypes.html#v%3AioMsgMaybe"
>ioMsgMaybe</A
></TT
>, but assumes that the action will never return any error
 messages.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:logWarnings"
><A NAME="v%3AlogWarnings"
></A
></A
><B
>logWarnings</B
> :: <A HREF="HscTypes.html#t%3AWarnLogMonad"
>WarnLogMonad</A
> m =&gt; <A HREF="ErrUtils.html#t%3AWarningMessages"
>WarningMessages</A
> -&gt; m <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:clearWarnings"
><A NAME="v%3AclearWarnings"
></A
></A
><B
>clearWarnings</B
> :: <A HREF="HscTypes.html#t%3AWarnLogMonad"
>WarnLogMonad</A
> m =&gt; m <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="doc"
>Clear the log of <TT
><A HREF="HscTypes.html#t%3AWarnings"
>Warnings</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:hasWarnings"
><A NAME="v%3AhasWarnings"
></A
></A
><B
>hasWarnings</B
> :: <A HREF="HscTypes.html#t%3AWarnLogMonad"
>WarnLogMonad</A
> m =&gt; m <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
>Returns true if there were any warnings.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:SourceError"
><A NAME="t%3ASourceError"
></A
></A
><B
>SourceError</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>A source error is an error that is caused by one or more errors in the
 source code.  A <TT
><A HREF="HscTypes.html#t%3ASourceError"
>SourceError</A
></TT
> is thrown by many functions in the
 compilation pipeline.  Inside GHC these errors are merely printed via
 <TT
><A HREF="DynFlags.html#v%3Alog_action"
>log_action</A
></TT
>, but API clients may treat them differently, for example,
 insert them into a list box.  If you want the default behaviour, use the
 idiom:
</P
><PRE
> handleSourceError printExceptionAndWarnings $ do
   ... api calls that may fail ...
</PRE
><P
>The <TT
><A HREF="HscTypes.html#t%3ASourceError"
>SourceError</A
></TT
>s error messages can be accessed via <TT
><A HREF="HscTypes.html#v%3AsrcErrorMessages"
>srcErrorMessages</A
></TT
>.
 This list may be empty if the compiler failed due to <TT
>-Werror</TT
>
 (<TT
><A HREF="DynFlags.html#v%3AOpt_WarnIsError"
>Opt_WarnIsError</A
></TT
>).
</P
><P
>See printExceptionAndWarnings for more information on what to take care
 of when writing a custom error handler.
</P
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:SourceError')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:SourceError" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="HscTypes.html#t%3ASourceError"
>SourceError</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base-4.2.0.2/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="HscTypes.html#t%3ASourceError"
>SourceError</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Panic.html#t%3AException"
>Exception</A
> <A HREF="HscTypes.html#t%3ASourceError"
>SourceError</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:GhcApiError"
><A NAME="t%3AGhcApiError"
></A
></A
><B
>GhcApiError</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>XXX: what exactly is an API error?
</TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:GhcApiError')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:GhcApiError" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="HscTypes.html#t%3AGhcApiError"
>GhcApiError</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base-4.2.0.2/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="HscTypes.html#t%3AGhcApiError"
>GhcApiError</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Panic.html#t%3AException"
>Exception</A
> <A HREF="HscTypes.html#t%3AGhcApiError"
>GhcApiError</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkSrcErr"
><A NAME="v%3AmkSrcErr"
></A
></A
><B
>mkSrcErr</B
> :: <A HREF="ErrUtils.html#t%3AErrorMessages"
>ErrorMessages</A
> -&gt; <A HREF="HscTypes.html#t%3ASourceError"
>SourceError</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:srcErrorMessages"
><A NAME="v%3AsrcErrorMessages"
></A
></A
><B
>srcErrorMessages</B
> :: <A HREF="HscTypes.html#t%3ASourceError"
>SourceError</A
> -&gt; <A HREF="ErrUtils.html#t%3AErrorMessages"
>ErrorMessages</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkApiErr"
><A NAME="v%3AmkApiErr"
></A
></A
><B
>mkApiErr</B
> :: <A HREF="Outputable.html#t%3ASDoc"
>SDoc</A
> -&gt; <A HREF="HscTypes.html#t%3AGhcApiError"
>GhcApiError</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:throwOneError"
><A NAME="v%3AthrowOneError"
></A
></A
><B
>throwOneError</B
> :: <A HREF="MonadUtils.html#t%3AMonadIO"
>MonadIO</A
> m =&gt; <A HREF="ErrUtils.html#t%3AErrMsg"
>ErrMsg</A
> -&gt; m ab</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:handleSourceError"
><A NAME="v%3AhandleSourceError"
></A
></A
><B
>handleSourceError</B
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="Exception.html#t%3AExceptionMonad"
>ExceptionMonad</A
> m</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; <A HREF="HscTypes.html#t%3ASourceError"
>SourceError</A
> -&gt; m a</TD
><TD CLASS="rdoc"
>exception handler
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; m a</TD
><TD CLASS="rdoc"
>action to perform
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; m a</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>Perform the given action and call the exception handler if the action
 throws a <TT
><A HREF="HscTypes.html#t%3ASourceError"
>SourceError</A
></TT
>.  See <TT
><A HREF="HscTypes.html#t%3ASourceError"
>SourceError</A
></TT
> for more information.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:reflectGhc"
><A NAME="v%3AreflectGhc"
></A
></A
><B
>reflectGhc</B
> ::  <A HREF="HscTypes.html#t%3AGhc"
>Ghc</A
> a -&gt; <A HREF="HscTypes.html#t%3ASession"
>Session</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> a</TD
></TR
><TR
><TD CLASS="doc"
><P
>Reflect a computation in the <TT
><A HREF="HscTypes.html#t%3AGhc"
>Ghc</A
></TT
> monad into the <TT
><A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
></TT
> monad.
</P
><P
>You can use this to call functions returning an action in the <TT
><A HREF="HscTypes.html#t%3AGhc"
>Ghc</A
></TT
> monad
 inside an <TT
><A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
></TT
> action.  This is needed for some (too restrictive) callback
 arguments of some library functions:
</P
><PRE
> libFunc :: String -&gt; (Int -&gt; IO a) -&gt; IO a
 ghcFunc :: Int -&gt; Ghc a

 ghcFuncUsingLibFunc :: String -&gt; Ghc a -&gt; Ghc a
 ghcFuncUsingLibFunc str =
   reifyGhc $ \s -&gt;
     libFunc $ \i -&gt; do
       reflectGhc (ghcFunc i) s
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:reifyGhc"
><A NAME="v%3AreifyGhc"
></A
></A
><B
>reifyGhc</B
> ::  (<A HREF="HscTypes.html#t%3ASession"
>Session</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> a) -&gt; <A HREF="HscTypes.html#t%3AGhc"
>Ghc</A
> a</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:handleFlagWarnings"
><A NAME="v%3AhandleFlagWarnings"
></A
></A
><B
>handleFlagWarnings</B
> :: <A HREF="HscTypes.html#t%3AGhcMonad"
>GhcMonad</A
> m =&gt; <A HREF="DynFlags.html#t%3ADynFlags"
>DynFlags</A
> -&gt; [<A HREF="SrcLoc.html#t%3ALocated"
>Located</A
> <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>] -&gt; m <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="2"
><A NAME="2"
>Sessions and compilation state
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:Session"
><A NAME="t%3ASession"
></A
></A
><B
>Session</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>The Session is a handle to the complete state of a compilation
 session.  A compilation session consists of a set of modules
 constituting the current program or library, the context for
 interactive evaluation, and various caches.
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:Session"
><A NAME="v%3ASession"
></A
></A
><B
>Session</B
> !(<A HREF="IOEnv.html#t%3AIORef"
>IORef</A
> <A HREF="HscTypes.html#t%3AHscEnv"
>HscEnv</A
>) !(<A HREF="IOEnv.html#t%3AIORef"
>IORef</A
> <A HREF="ErrUtils.html#t%3AWarningMessages"
>WarningMessages</A
>)</TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:withSession"
><A NAME="v%3AwithSession"
></A
></A
><B
>withSession</B
> :: <A HREF="HscTypes.html#t%3AGhcMonad"
>GhcMonad</A
> m =&gt; (<A HREF="HscTypes.html#t%3AHscEnv"
>HscEnv</A
> -&gt; m a) -&gt; m a</TD
></TR
><TR
><TD CLASS="doc"
>Call the argument with the current session.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:modifySession"
><A NAME="v%3AmodifySession"
></A
></A
><B
>modifySession</B
> :: <A HREF="HscTypes.html#t%3AGhcMonad"
>GhcMonad</A
> m =&gt; (<A HREF="HscTypes.html#t%3AHscEnv"
>HscEnv</A
> -&gt; <A HREF="HscTypes.html#t%3AHscEnv"
>HscEnv</A
>) -&gt; m <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="doc"
>Set the current session to the result of applying the current session to
 the argument.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:withTempSession"
><A NAME="v%3AwithTempSession"
></A
></A
><B
>withTempSession</B
> :: <A HREF="HscTypes.html#t%3AGhcMonad"
>GhcMonad</A
> m =&gt; (<A HREF="HscTypes.html#t%3AHscEnv"
>HscEnv</A
> -&gt; <A HREF="HscTypes.html#t%3AHscEnv"
>HscEnv</A
>) -&gt; m a -&gt; m a</TD
></TR
><TR
><TD CLASS="doc"
>Call an action with a temporarily modified Session.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HscEnv"
><A NAME="t%3AHscEnv"
></A
></A
><B
>HscEnv</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>Hscenv is like <TT
><A HREF="HscTypes.html#t%3ASession"
>Session</A
></TT
>, except that some of the fields are immutable.
 An HscEnv is used to compile a single module from plain Haskell source
 code (after preprocessing) to either C, assembly or C--.  Things like
 the module graph don't change during a single compilation.
</P
><P
>Historical note: &quot;hsc&quot; used to be the name of the compiler binary,
 when there was a separate driver and compiler.  To compile a single
 module, the driver would invoke hsc on the source code... so nowadays
 we think of hsc as the layer of the compiler that deals with compiling
 a single module.
</P
></TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:HscEnv"
><A NAME="v%3AHscEnv"
></A
></A
><B
>HscEnv</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:hsc_dflags"
><A NAME="v%3Ahsc_dflags"
></A
></A
><B
>hsc_dflags</B
> :: <A HREF="DynFlags.html#t%3ADynFlags"
>DynFlags</A
></TD
><TD CLASS="rdoc"
>The dynamic flag settings
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:hsc_callbacks"
><A NAME="v%3Ahsc_callbacks"
></A
></A
><B
>hsc_callbacks</B
> :: <A HREF="HscTypes.html#t%3AGhcApiCallbacks"
>GhcApiCallbacks</A
></TD
><TD CLASS="rdoc"
>Callbacks for the GHC API.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:hsc_targets"
><A NAME="v%3Ahsc_targets"
></A
></A
><B
>hsc_targets</B
> :: [<A HREF="HscTypes.html#t%3ATarget"
>Target</A
>]</TD
><TD CLASS="rdoc"
>The targets (or roots) of the current session
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:hsc_mod_graph"
><A NAME="v%3Ahsc_mod_graph"
></A
></A
><B
>hsc_mod_graph</B
> :: <A HREF="HscTypes.html#t%3AModuleGraph"
>ModuleGraph</A
></TD
><TD CLASS="rdoc"
>The module graph of the current session
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:hsc_IC"
><A NAME="v%3Ahsc_IC"
></A
></A
><B
>hsc_IC</B
> :: <A HREF="HscTypes.html#t%3AInteractiveContext"
>InteractiveContext</A
></TD
><TD CLASS="rdoc"
>The context for evaluating interactive statements
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:hsc_HPT"
><A NAME="v%3Ahsc_HPT"
></A
></A
><B
>hsc_HPT</B
> :: <A HREF="HscTypes.html#t%3AHomePackageTable"
>HomePackageTable</A
></TD
><TD CLASS="rdoc"
><P
>The home package table describes already-compiled
 home-package modules, <EM
>excluding</EM
> the module we 
 are compiling right now.
 (In one-shot mode the current module is the only
  home-package module, so hsc_HPT is empty.  All other
  modules count as &quot;external-package&quot; modules.
  However, even in GHCi mode, hi-boot interfaces are
  demand-loaded into the external-package table.)
</P
><P
><TT
><A HREF="HscTypes.html#v%3Ahsc_HPT"
>hsc_HPT</A
></TT
> is not mutable because we only demand-load 
 external packages; the home package is eagerly 
 loaded, module by module, by the compilation manager.
</P
><P
>The HPT may contain modules compiled earlier by <TT
>--make</TT
>
 but not actually below the current module in the dependency
 graph.
</P
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:hsc_EPS"
><A NAME="v%3Ahsc_EPS"
></A
></A
><B
>hsc_EPS</B
> :: !(<A HREF="IOEnv.html#t%3AIORef"
>IORef</A
> <A HREF="HscTypes.html#t%3AExternalPackageState"
>ExternalPackageState</A
>)</TD
><TD CLASS="rdoc"
>Information about the currently loaded external packages.
 This is mutable because packages will be demand-loaded during
 a compilation run as required.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:hsc_NC"
><A NAME="v%3Ahsc_NC"
></A
></A
><B
>hsc_NC</B
> :: !(<A HREF="IOEnv.html#t%3AIORef"
>IORef</A
> <A HREF="HscTypes.html#t%3ANameCache"
>NameCache</A
>)</TD
><TD CLASS="rdoc"
>As with <TT
><A HREF="HscTypes.html#v%3Ahsc_EPS"
>hsc_EPS</A
></TT
>, this is side-effected by compiling to
 reflect sucking in interface files.  They cache the state of
 external interface files, in effect.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:hsc_FC"
><A NAME="v%3Ahsc_FC"
></A
></A
><B
>hsc_FC</B
> :: !(<A HREF="IOEnv.html#t%3AIORef"
>IORef</A
> <A HREF="HscTypes.html#t%3AFinderCache"
>FinderCache</A
>)</TD
><TD CLASS="rdoc"
>The cached result of performing finding in the file system
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:hsc_MLC"
><A NAME="v%3Ahsc_MLC"
></A
></A
><B
>hsc_MLC</B
> :: !(<A HREF="IOEnv.html#t%3AIORef"
>IORef</A
> <A HREF="HscTypes.html#t%3AModLocationCache"
>ModLocationCache</A
>)</TD
><TD CLASS="rdoc"
>This caches the location of modules, so we don't have to 
 search the filesystem multiple times. See also <TT
><A HREF="HscTypes.html#v%3Ahsc_FC"
>hsc_FC</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:hsc_OptFuel"
><A NAME="v%3Ahsc_OptFuel"
></A
></A
><B
>hsc_OptFuel</B
> :: <A HREF="OptimizationFuel.html#t%3AOptFuelState"
>OptFuelState</A
></TD
><TD CLASS="rdoc"
>Settings to control the use of &quot;optimization fuel&quot;:
 by limiting the number of transformations,
 we can use binary search to help find compiler bugs.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:hsc_type_env_var"
><A NAME="v%3Ahsc_type_env_var"
></A
></A
><B
>hsc_type_env_var</B
> :: <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (<A HREF="Module.html#t%3AModule"
>Module</A
>, <A HREF="IOEnv.html#t%3AIORef"
>IORef</A
> <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
>)</TD
><TD CLASS="rdoc"
>Used for one-shot compilation only, to initialise
 the IfGblEnv. See TcRnTypes.tcg_type_env_var for 
 TcRunTypes.TcGblEnv
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:hsc_global_rdr_env"
><A NAME="v%3Ahsc_global_rdr_env"
></A
></A
><B
>hsc_global_rdr_env</B
> :: <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
></TD
><TD CLASS="rdoc"
>A mapping from <TT
><A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TT
>s that are in global scope during
 the compilation of the current file to more detailed
 information about those names. Not necessarily just the
 names directly imported by the module being compiled!
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:hsc_global_type_env"
><A NAME="v%3Ahsc_global_type_env"
></A
></A
><B
>hsc_global_type_env</B
> :: <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
></TD
><TD CLASS="rdoc"
>Typing information about all those things in global scope.
 Not necessarily just the things directly imported by the module 
 being compiled!
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:hscEPS"
><A NAME="v%3AhscEPS"
></A
></A
><B
>hscEPS</B
> :: <A HREF="HscTypes.html#t%3AHscEnv"
>HscEnv</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="HscTypes.html#t%3AExternalPackageState"
>ExternalPackageState</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:FinderCache"
><A NAME="t%3AFinderCache"
></A
></A
><B
>FinderCache</B
> = <A HREF="Module.html#t%3AModuleNameEnv"
>ModuleNameEnv</A
> <A HREF="HscTypes.html#t%3AFindResult"
>FindResult</A
></TD
></TR
><TR
><TD CLASS="doc"
><P
>The <TT
><A HREF="HscTypes.html#t%3AFinderCache"
>FinderCache</A
></TT
> maps home module names to the result of
 searching for that module.  It records the results of searching for
 modules along the search path.  On <TT
>:load</TT
>, we flush the entire
 contents of this cache.
</P
><P
>Although the <TT
>FinderCache</TT
> range is <TT
><A HREF="HscTypes.html#t%3AFindResult"
>FindResult</A
></TT
> for convenience ,
 in fact it will only ever contain <TT
><A HREF="HscTypes.html#v%3AFound"
>Found</A
></TT
> or <TT
><A HREF="HscTypes.html#v%3ANotFound"
>NotFound</A
></TT
> entries.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:FindResult"
><A NAME="t%3AFindResult"
></A
></A
><B
>FindResult</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>The result of searching for an imported module.
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:Found"
><A NAME="v%3AFound"
></A
></A
><B
>Found</B
> <A HREF="Module.html#t%3AModLocation"
>ModLocation</A
> <A HREF="Module.html#t%3AModule"
>Module</A
></TD
><TD CLASS="rdoc"
>The module was found
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:NoPackage"
><A NAME="v%3ANoPackage"
></A
></A
><B
>NoPackage</B
> <A HREF="Module.html#t%3APackageId"
>PackageId</A
></TD
><TD CLASS="rdoc"
>The requested package was not found
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:FoundMultiple"
><A NAME="v%3AFoundMultiple"
></A
></A
><B
>FoundMultiple</B
> [<A HREF="Module.html#t%3APackageId"
>PackageId</A
>]</TD
><TD CLASS="rdoc"
>_Error_: both in multiple packages
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:NotFound"
><A NAME="v%3ANotFound"
></A
></A
><B
>NotFound</B
> [<A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
>] (<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Module.html#t%3APackageId"
>PackageId</A
>) [<A HREF="Module.html#t%3APackageId"
>PackageId</A
>] [<A HREF="Module.html#t%3APackageId"
>PackageId</A
>]</TD
><TD CLASS="rdoc"
>The module was not found, including either
    * the specified places were searched
    * the package that this module should have been in
    * list of packages in which the module was hidden,
    * list of hidden packages containing this module
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:NotFoundInPackage"
><A NAME="v%3ANotFoundInPackage"
></A
></A
><B
>NotFoundInPackage</B
> <A HREF="Module.html#t%3APackageId"
>PackageId</A
></TD
><TD CLASS="rdoc"
>The module was not found in this package
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:ModLocationCache"
><A NAME="t%3AModLocationCache"
></A
></A
><B
>ModLocationCache</B
> = <A HREF="Module.html#t%3AModuleEnv"
>ModuleEnv</A
> <A HREF="Module.html#t%3AModLocation"
>ModLocation</A
></TD
></TR
><TR
><TD CLASS="doc"
>Cache that remembers where we found a particular module.  Contains both
 home modules and package modules.  On <TT
>:load</TT
>, only home modules are
 purged from this cache.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:Target"
><A NAME="t%3ATarget"
></A
></A
><B
>Target</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>A compilation target.
</P
><P
>A target may be supplied with the actual text of the
 module.  If so, use this instead of the file contents (this
 is for use in an IDE where the file hasn't been saved by
 the user yet).
</P
></TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:Target"
><A NAME="v%3ATarget"
></A
></A
><B
>Target</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:targetId"
><A NAME="v%3AtargetId"
></A
></A
><B
>targetId</B
> :: <A HREF="HscTypes.html#t%3ATargetId"
>TargetId</A
></TD
><TD CLASS="rdoc"
>module or filename
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:targetAllowObjCode"
><A NAME="v%3AtargetAllowObjCode"
></A
></A
><B
>targetAllowObjCode</B
> :: <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
><TD CLASS="rdoc"
>object code allowed?
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:targetContents"
><A NAME="v%3AtargetContents"
></A
></A
><B
>targetContents</B
> :: <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (<A HREF="StringBuffer.html#t%3AStringBuffer"
>StringBuffer</A
>, <A HREF="../old-time-1.0.0.5/System-Time.html#t%3AClockTime"
>ClockTime</A
>)</TD
><TD CLASS="rdoc"
>in-memory text buffer?
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Target')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Target" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> <A HREF="HscTypes.html#t%3ATarget"
>Target</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:TargetId"
><A NAME="t%3ATargetId"
></A
></A
><B
>TargetId</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:TargetModule"
><A NAME="v%3ATargetModule"
></A
></A
><B
>TargetModule</B
> <A HREF="Module.html#t%3AModuleName"
>ModuleName</A
></TD
><TD CLASS="rdoc"
>A module name: search for the file
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:TargetFile"
><A NAME="v%3ATargetFile"
></A
></A
><B
>TargetFile</B
> <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
> (<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="DriverPhases.html#t%3APhase"
>Phase</A
>)</TD
><TD CLASS="rdoc"
>A filename: preprocess &amp; parse it to find the module name.
 If specified, the Phase indicates how to compile this file
 (which phase to start from).  Nothing indicates the starting phase
 should be determined from the suffix of the filename.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:TargetId')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:TargetId" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="HscTypes.html#t%3ATargetId"
>TargetId</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> <A HREF="HscTypes.html#t%3ATargetId"
>TargetId</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:pprTarget"
><A NAME="v%3ApprTarget"
></A
></A
><B
>pprTarget</B
> :: <A HREF="HscTypes.html#t%3ATarget"
>Target</A
> -&gt; <A HREF="Outputable.html#t%3ASDoc"
>SDoc</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:pprTargetId"
><A NAME="v%3ApprTargetId"
></A
></A
><B
>pprTargetId</B
> :: <A HREF="HscTypes.html#t%3ATargetId"
>TargetId</A
> -&gt; <A HREF="Outputable.html#t%3ASDoc"
>SDoc</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:ModuleGraph"
><A NAME="t%3AModuleGraph"
></A
></A
><B
>ModuleGraph</B
> = [<A HREF="HscTypes.html#t%3AModSummary"
>ModSummary</A
>]</TD
></TR
><TR
><TD CLASS="doc"
><P
>A ModuleGraph contains all the nodes from the home package (only).
 There will be a node for each source module, plus a node for each hi-boot
 module.
</P
><P
>The graph is not necessarily stored in topologically-sorted order.  Use
 GHC.topSortModuleGraph and Digraph.flattenSCC to achieve this.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:emptyMG"
><A NAME="v%3AemptyMG"
></A
></A
><B
>emptyMG</B
> :: <A HREF="HscTypes.html#t%3AModuleGraph"
>ModuleGraph</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="3"
><A NAME="3"
>Callbacks
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:GhcApiCallbacks"
><A NAME="t%3AGhcApiCallbacks"
></A
></A
><B
>GhcApiCallbacks</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>These functions are called in various places of the GHC API.
</P
><P
>API clients can override any of these callbacks to change GHC's default
 behaviour.
</P
></TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:GhcApiCallbacks"
><A NAME="v%3AGhcApiCallbacks"
></A
></A
><B
>GhcApiCallbacks</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:reportModuleCompilationResult"
><A NAME="v%3AreportModuleCompilationResult"
></A
></A
><B
>reportModuleCompilationResult</B
> :: <A HREF="HscTypes.html#t%3AGhcMonad"
>GhcMonad</A
> m =&gt; <A HREF="HscTypes.html#t%3AModSummary"
>ModSummary</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="HscTypes.html#t%3ASourceError"
>SourceError</A
> -&gt; m <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
><TD CLASS="rdoc"
><P
>Called by load after the compilating of each module.
</P
><P
>The default implementation simply prints all warnings and errors to
 <TT
>stderr</TT
>.  Don't forget to call <TT
><A HREF="HscTypes.html#v%3AclearWarnings"
>clearWarnings</A
></TT
> when implementing your
 own call.
</P
><P
>The first argument is the module that was compiled.
</P
><P
>The second argument is <TT
>Nothing</TT
> if no errors occured, but there may
 have been warnings.  If it is <TT
>Just err</TT
> at least one error has
 occured.  If <TT
><A HREF="HscTypes.html#v%3AsrcErrorMessages"
>srcErrorMessages</A
></TT
> is empty, compilation failed due to
 <TT
>-Werror</TT
>.
</P
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:withLocalCallbacks"
><A NAME="v%3AwithLocalCallbacks"
></A
></A
><B
>withLocalCallbacks</B
> :: <A HREF="HscTypes.html#t%3AGhcMonad"
>GhcMonad</A
> m =&gt; (<A HREF="HscTypes.html#t%3AGhcApiCallbacks"
>GhcApiCallbacks</A
> -&gt; <A HREF="HscTypes.html#t%3AGhcApiCallbacks"
>GhcApiCallbacks</A
>) -&gt; m a -&gt; m a</TD
></TR
><TR
><TD CLASS="doc"
>Temporarily modify the callbacks.  After the action is executed all
 callbacks are reset (not, however, any other modifications to the session
 state.)
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="4"
><A NAME="4"
>Information about modules
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:ModDetails"
><A NAME="t%3AModDetails"
></A
></A
><B
>ModDetails</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>The <TT
><A HREF="HscTypes.html#t%3AModDetails"
>ModDetails</A
></TT
> is essentially a cache for information in the <TT
><A HREF="HscTypes.html#t%3AModIface"
>ModIface</A
></TT
>
 for home modules only. Information relating to packages will be loaded into
 global environments in <TT
><A HREF="HscTypes.html#t%3AExternalPackageState"
>ExternalPackageState</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:ModDetails"
><A NAME="v%3AModDetails"
></A
></A
><B
>ModDetails</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:md_exports"
><A NAME="v%3Amd_exports"
></A
></A
><B
>md_exports</B
> :: [<A HREF="HscTypes.html#t%3AAvailInfo"
>AvailInfo</A
>]</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:md_types"
><A NAME="v%3Amd_types"
></A
></A
><B
>md_types</B
> :: !<A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
></TD
><TD CLASS="rdoc"
>Local type environment for this particular module
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:md_insts"
><A NAME="v%3Amd_insts"
></A
></A
><B
>md_insts</B
> :: ![<A HREF="InstEnv.html#t%3AInstance"
>Instance</A
>]</TD
><TD CLASS="rdoc"
>DFunIds for the instances in this module
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:md_fam_insts"
><A NAME="v%3Amd_fam_insts"
></A
></A
><B
>md_fam_insts</B
> :: ![<A HREF="FamInstEnv.html#t%3AFamInst"
>FamInst</A
>]</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:md_rules"
><A NAME="v%3Amd_rules"
></A
></A
><B
>md_rules</B
> :: ![<A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
>]</TD
><TD CLASS="rdoc"
>Domain may include <TT
><A HREF="Var.html#t%3AId"
>Id</A
></TT
>s from other modules
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:md_anns"
><A NAME="v%3Amd_anns"
></A
></A
><B
>md_anns</B
> :: ![<A HREF="Annotations.html#t%3AAnnotation"
>Annotation</A
>]</TD
><TD CLASS="rdoc"
>Annotations present in this module: currently 
 they only annotate things also declared in this module
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:md_vect_info"
><A NAME="v%3Amd_vect_info"
></A
></A
><B
>md_vect_info</B
> :: !<A HREF="HscTypes.html#t%3AVectInfo"
>VectInfo</A
></TD
><TD CLASS="rdoc"
>Module vectorisation information
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:emptyModDetails"
><A NAME="v%3AemptyModDetails"
></A
></A
><B
>emptyModDetails</B
> :: <A HREF="HscTypes.html#t%3AModDetails"
>ModDetails</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:ModGuts"
><A NAME="t%3AModGuts"
></A
></A
><B
>ModGuts</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>A ModGuts is carried through the compiler, accumulating stuff as it goes
 There is only one ModGuts at any time, the one for the module
 being compiled right now.  Once it is compiled, a <TT
><A HREF="HscTypes.html#t%3AModIface"
>ModIface</A
></TT
> and 
 <TT
><A HREF="HscTypes.html#t%3AModDetails"
>ModDetails</A
></TT
> are extracted and the ModGuts is dicarded.
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:ModGuts"
><A NAME="v%3AModGuts"
></A
></A
><B
>ModGuts</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:mg_module"
><A NAME="v%3Amg_module"
></A
></A
><B
>mg_module</B
> :: !<A HREF="Module.html#t%3AModule"
>Module</A
></TD
><TD CLASS="rdoc"
>Module being compiled
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mg_boot"
><A NAME="v%3Amg_boot"
></A
></A
><B
>mg_boot</B
> :: <A HREF="HscTypes.html#t%3AIsBootInterface"
>IsBootInterface</A
></TD
><TD CLASS="rdoc"
>Whether it's an hs-boot module
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mg_exports"
><A NAME="v%3Amg_exports"
></A
></A
><B
>mg_exports</B
> :: ![<A HREF="HscTypes.html#t%3AAvailInfo"
>AvailInfo</A
>]</TD
><TD CLASS="rdoc"
>What it exports
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mg_deps"
><A NAME="v%3Amg_deps"
></A
></A
><B
>mg_deps</B
> :: !<A HREF="HscTypes.html#t%3ADependencies"
>Dependencies</A
></TD
><TD CLASS="rdoc"
>What it depends on, directly or
 otherwise
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mg_dir_imps"
><A NAME="v%3Amg_dir_imps"
></A
></A
><B
>mg_dir_imps</B
> :: !<A HREF="HscTypes.html#t%3AImportedMods"
>ImportedMods</A
></TD
><TD CLASS="rdoc"
>Directly-imported modules; used to
 generate initialisation code
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mg_used_names"
><A NAME="v%3Amg_used_names"
></A
></A
><B
>mg_used_names</B
> :: !<A HREF="NameSet.html#t%3ANameSet"
>NameSet</A
></TD
><TD CLASS="rdoc"
>What the module needed (used in MkIface.mkIface)
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mg_rdr_env"
><A NAME="v%3Amg_rdr_env"
></A
></A
><B
>mg_rdr_env</B
> :: !<A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
></TD
><TD CLASS="rdoc"
>Top-level lexical environment
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mg_fix_env"
><A NAME="v%3Amg_fix_env"
></A
></A
><B
>mg_fix_env</B
> :: !<A HREF="HscTypes.html#t%3AFixityEnv"
>FixityEnv</A
></TD
><TD CLASS="rdoc"
>Fixities declared in this module
 TODO: I'm unconvinced this is actually used anywhere
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mg_types"
><A NAME="v%3Amg_types"
></A
></A
><B
>mg_types</B
> :: !<A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
></TD
><TD CLASS="rdoc"
>Types declared in this module
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mg_insts"
><A NAME="v%3Amg_insts"
></A
></A
><B
>mg_insts</B
> :: ![<A HREF="InstEnv.html#t%3AInstance"
>Instance</A
>]</TD
><TD CLASS="rdoc"
>Class instances declared in this module
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mg_fam_insts"
><A NAME="v%3Amg_fam_insts"
></A
></A
><B
>mg_fam_insts</B
> :: ![<A HREF="FamInstEnv.html#t%3AFamInst"
>FamInst</A
>]</TD
><TD CLASS="rdoc"
>Family instances declared in this module
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mg_rules"
><A NAME="v%3Amg_rules"
></A
></A
><B
>mg_rules</B
> :: ![<A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
>]</TD
><TD CLASS="rdoc"
>Before the core pipeline starts, contains 
 rules declared in this module. After the core
 pipeline starts, it is changed to contain all
 known rules for those things imported
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mg_binds"
><A NAME="v%3Amg_binds"
></A
></A
><B
>mg_binds</B
> :: ![<A HREF="CoreSyn.html#t%3ACoreBind"
>CoreBind</A
>]</TD
><TD CLASS="rdoc"
>Bindings for this module
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mg_foreign"
><A NAME="v%3Amg_foreign"
></A
></A
><B
>mg_foreign</B
> :: !<A HREF="HscTypes.html#t%3AForeignStubs"
>ForeignStubs</A
></TD
><TD CLASS="rdoc"
>Foreign exports declared in this module
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mg_warns"
><A NAME="v%3Amg_warns"
></A
></A
><B
>mg_warns</B
> :: !<A HREF="HscTypes.html#t%3AWarnings"
>Warnings</A
></TD
><TD CLASS="rdoc"
>Warnings declared in the module
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mg_anns"
><A NAME="v%3Amg_anns"
></A
></A
><B
>mg_anns</B
> :: [<A HREF="Annotations.html#t%3AAnnotation"
>Annotation</A
>]</TD
><TD CLASS="rdoc"
>Annotations declared in this module
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mg_hpc_info"
><A NAME="v%3Amg_hpc_info"
></A
></A
><B
>mg_hpc_info</B
> :: !<A HREF="HscTypes.html#t%3AHpcInfo"
>HpcInfo</A
></TD
><TD CLASS="rdoc"
>Coverage tick boxes in the module
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mg_modBreaks"
><A NAME="v%3Amg_modBreaks"
></A
></A
><B
>mg_modBreaks</B
> :: !<A HREF="HscTypes.html#t%3AModBreaks"
>ModBreaks</A
></TD
><TD CLASS="rdoc"
>Breakpoints for the module
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mg_vect_info"
><A NAME="v%3Amg_vect_info"
></A
></A
><B
>mg_vect_info</B
> :: !<A HREF="HscTypes.html#t%3AVectInfo"
>VectInfo</A
></TD
><TD CLASS="rdoc"
>Pool of vectorised declarations in the module
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mg_inst_env"
><A NAME="v%3Amg_inst_env"
></A
></A
><B
>mg_inst_env</B
> :: <A HREF="InstEnv.html#t%3AInstEnv"
>InstEnv</A
></TD
><TD CLASS="rdoc"
>Class instance environment from <EM
>home-package</EM
> modules (including
 this one); c.f. tcg_inst_env
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mg_fam_inst_env"
><A NAME="v%3Amg_fam_inst_env"
></A
></A
><B
>mg_fam_inst_env</B
> :: <A HREF="FamInstEnv.html#t%3AFamInstEnv"
>FamInstEnv</A
></TD
><TD CLASS="rdoc"
>Type-family instance enviroment for <EM
>home-package</EM
> modules
 (including this one); c.f. tcg_fam_inst_env
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:CoreModule"
><A NAME="t%3ACoreModule"
></A
></A
><B
>CoreModule</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>A CoreModule consists of just the fields of a <TT
><A HREF="HscTypes.html#t%3AModGuts"
>ModGuts</A
></TT
> that are needed for
 the GHC.compileToCoreModule interface.
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:CoreModule"
><A NAME="v%3ACoreModule"
></A
></A
><B
>CoreModule</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:cm_module"
><A NAME="v%3Acm_module"
></A
></A
><B
>cm_module</B
> :: !<A HREF="Module.html#t%3AModule"
>Module</A
></TD
><TD CLASS="rdoc"
>Module name
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:cm_types"
><A NAME="v%3Acm_types"
></A
></A
><B
>cm_types</B
> :: !<A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
></TD
><TD CLASS="rdoc"
>Type environment for types declared in this module
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:cm_binds"
><A NAME="v%3Acm_binds"
></A
></A
><B
>cm_binds</B
> :: [<A HREF="CoreSyn.html#t%3ACoreBind"
>CoreBind</A
>]</TD
><TD CLASS="rdoc"
>Declarations
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:cm_imports"
><A NAME="v%3Acm_imports"
></A
></A
><B
>cm_imports</B
> :: ![<A HREF="Module.html#t%3AModule"
>Module</A
>]</TD
><TD CLASS="rdoc"
>Imports
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:CoreModule')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:CoreModule" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> <A HREF="HscTypes.html#t%3ACoreModule"
>CoreModule</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:CgGuts"
><A NAME="t%3ACgGuts"
></A
></A
><B
>CgGuts</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>A restricted form of <TT
><A HREF="HscTypes.html#t%3AModGuts"
>ModGuts</A
></TT
> for code generation purposes
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:CgGuts"
><A NAME="v%3ACgGuts"
></A
></A
><B
>CgGuts</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:cg_module"
><A NAME="v%3Acg_module"
></A
></A
><B
>cg_module</B
> :: !<A HREF="Module.html#t%3AModule"
>Module</A
></TD
><TD CLASS="rdoc"
>Module being compiled
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:cg_tycons"
><A NAME="v%3Acg_tycons"
></A
></A
><B
>cg_tycons</B
> :: [<A HREF="TyCon.html#t%3ATyCon"
>TyCon</A
>]</TD
><TD CLASS="rdoc"
>Algebraic data types (including ones that started
 life as classes); generate constructors and info
 tables. Includes newtypes, just for the benefit of
 External Core
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:cg_binds"
><A NAME="v%3Acg_binds"
></A
></A
><B
>cg_binds</B
> :: [<A HREF="CoreSyn.html#t%3ACoreBind"
>CoreBind</A
>]</TD
><TD CLASS="rdoc"
>The tidied main bindings, including
 previously-implicit bindings for record and class
 selectors, and data construtor wrappers.  But *not*
 data constructor workers; reason: we we regard them
 as part of the code-gen of tycons
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:cg_dir_imps"
><A NAME="v%3Acg_dir_imps"
></A
></A
><B
>cg_dir_imps</B
> :: ![<A HREF="Module.html#t%3AModule"
>Module</A
>]</TD
><TD CLASS="rdoc"
>Directly-imported modules; used to generate
 initialisation code
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:cg_foreign"
><A NAME="v%3Acg_foreign"
></A
></A
><B
>cg_foreign</B
> :: !<A HREF="HscTypes.html#t%3AForeignStubs"
>ForeignStubs</A
></TD
><TD CLASS="rdoc"
>Foreign export stubs
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:cg_dep_pkgs"
><A NAME="v%3Acg_dep_pkgs"
></A
></A
><B
>cg_dep_pkgs</B
> :: ![<A HREF="Module.html#t%3APackageId"
>PackageId</A
>]</TD
><TD CLASS="rdoc"
>Dependent packages, used to 
 generate #includes for C code gen
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:cg_hpc_info"
><A NAME="v%3Acg_hpc_info"
></A
></A
><B
>cg_hpc_info</B
> :: !<A HREF="HscTypes.html#t%3AHpcInfo"
>HpcInfo</A
></TD
><TD CLASS="rdoc"
>Program coverage tick box information
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:cg_modBreaks"
><A NAME="v%3Acg_modBreaks"
></A
></A
><B
>cg_modBreaks</B
> :: !<A HREF="HscTypes.html#t%3AModBreaks"
>ModBreaks</A
></TD
><TD CLASS="rdoc"
>Module breakpoints
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:ForeignStubs"
><A NAME="t%3AForeignStubs"
></A
></A
><B
>ForeignStubs</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Foreign export stubs
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:NoStubs"
><A NAME="v%3ANoStubs"
></A
></A
><B
>NoStubs</B
></TD
><TD CLASS="rdoc"
>We don't have any stubs
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ForeignStubs"
><A NAME="v%3AForeignStubs"
></A
></A
><B
>ForeignStubs</B
> <A HREF="Outputable.html#t%3ASDoc"
>SDoc</A
> <A HREF="Outputable.html#t%3ASDoc"
>SDoc</A
></TD
><TD CLASS="rdoc"
><P
>There are some stubs. Parameters:
</P
><P
>1) Header file prototypes for
     <A HREF="foreign exported.html"
>foreign exported</A
> functions
</P
><P
>2) C stubs to use when calling
     <A HREF="foreign exported.html"
>foreign exported</A
> functions
</P
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:ImportedMods"
><A NAME="t%3AImportedMods"
></A
></A
><B
>ImportedMods</B
> = <A HREF="Module.html#t%3AModuleEnv"
>ModuleEnv</A
> [(<A HREF="Module.html#t%3AModuleName"
>ModuleName</A
>, <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
>, <A HREF="SrcLoc.html#t%3ASrcSpan"
>SrcSpan</A
>)]</TD
></TR
><TR
><TD CLASS="doc"
>Records the modules directly imported by a module for extracting e.g. usage information
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:ModSummary"
><A NAME="t%3AModSummary"
></A
></A
><B
>ModSummary</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>A single node in a 'ModuleGraph. The nodes of the module graph are one of:
</P
><UL
><LI
> A regular Haskell source module
</LI
><LI
> A hi-boot source module
</LI
><LI
> An external-core source module
</LI
></UL
></TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:ModSummary"
><A NAME="v%3AModSummary"
></A
></A
><B
>ModSummary</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:ms_mod"
><A NAME="v%3Ams_mod"
></A
></A
><B
>ms_mod</B
> :: <A HREF="Module.html#t%3AModule"
>Module</A
></TD
><TD CLASS="rdoc"
>Identity of the module
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ms_hsc_src"
><A NAME="v%3Ams_hsc_src"
></A
></A
><B
>ms_hsc_src</B
> :: <A HREF="HscTypes.html#t%3AHscSource"
>HscSource</A
></TD
><TD CLASS="rdoc"
>The module source either plain Haskell, hs-boot or external core
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ms_location"
><A NAME="v%3Ams_location"
></A
></A
><B
>ms_location</B
> :: <A HREF="Module.html#t%3AModLocation"
>ModLocation</A
></TD
><TD CLASS="rdoc"
>Location of the various files belonging to the module
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ms_hs_date"
><A NAME="v%3Ams_hs_date"
></A
></A
><B
>ms_hs_date</B
> :: <A HREF="../old-time-1.0.0.5/System-Time.html#t%3AClockTime"
>ClockTime</A
></TD
><TD CLASS="rdoc"
>Timestamp of source file
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ms_obj_date"
><A NAME="v%3Ams_obj_date"
></A
></A
><B
>ms_obj_date</B
> :: <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="../old-time-1.0.0.5/System-Time.html#t%3AClockTime"
>ClockTime</A
></TD
><TD CLASS="rdoc"
>Timestamp of object, if we have one
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ms_srcimps"
><A NAME="v%3Ams_srcimps"
></A
></A
><B
>ms_srcimps</B
> :: [<A HREF="SrcLoc.html#t%3ALocated"
>Located</A
> (<A HREF="HsImpExp.html#t%3AImportDecl"
>ImportDecl</A
> <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
>)]</TD
><TD CLASS="rdoc"
>Source imports of the module
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ms_imps"
><A NAME="v%3Ams_imps"
></A
></A
><B
>ms_imps</B
> :: [<A HREF="SrcLoc.html#t%3ALocated"
>Located</A
> (<A HREF="HsImpExp.html#t%3AImportDecl"
>ImportDecl</A
> <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
>)]</TD
><TD CLASS="rdoc"
>Non-source imports of the module
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ms_hspp_file"
><A NAME="v%3Ams_hspp_file"
></A
></A
><B
>ms_hspp_file</B
> :: <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
><TD CLASS="rdoc"
>Filename of preprocessed source file
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ms_hspp_opts"
><A NAME="v%3Ams_hspp_opts"
></A
></A
><B
>ms_hspp_opts</B
> :: <A HREF="DynFlags.html#t%3ADynFlags"
>DynFlags</A
></TD
><TD CLASS="rdoc"
>Cached flags from <TT
>OPTIONS</TT
>, <TT
>INCLUDE</TT
>
 and <TT
>LANGUAGE</TT
> pragmas in the modules source code
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ms_hspp_buf"
><A NAME="v%3Ams_hspp_buf"
></A
></A
><B
>ms_hspp_buf</B
> :: <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="StringBuffer.html#t%3AStringBuffer"
>StringBuffer</A
></TD
><TD CLASS="rdoc"
>The actual preprocessed source, if we have it
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ModSummary')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:ModSummary" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> <A HREF="HscTypes.html#t%3AModSummary"
>ModSummary</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:ms_mod_name"
><A NAME="v%3Ams_mod_name"
></A
></A
><B
>ms_mod_name</B
> :: <A HREF="HscTypes.html#t%3AModSummary"
>ModSummary</A
> -&gt; <A HREF="Module.html#t%3AModuleName"
>ModuleName</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:showModMsg"
><A NAME="v%3AshowModMsg"
></A
></A
><B
>showModMsg</B
> :: <A HREF="DynFlags.html#t%3AHscTarget"
>HscTarget</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
> -&gt; <A HREF="HscTypes.html#t%3AModSummary"
>ModSummary</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isBootSummary"
><A NAME="v%3AisBootSummary"
></A
></A
><B
>isBootSummary</B
> :: <A HREF="HscTypes.html#t%3AModSummary"
>ModSummary</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
>Did this <TT
><A HREF="HscTypes.html#t%3AModSummary"
>ModSummary</A
></TT
> originate from a hs-boot file?
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:msHsFilePath"
><A NAME="v%3AmsHsFilePath"
></A
></A
><B
>msHsFilePath</B
> :: <A HREF="HscTypes.html#t%3AModSummary"
>ModSummary</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:msHiFilePath"
><A NAME="v%3AmsHiFilePath"
></A
></A
><B
>msHiFilePath</B
> :: <A HREF="HscTypes.html#t%3AModSummary"
>ModSummary</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:msObjFilePath"
><A NAME="v%3AmsObjFilePath"
></A
></A
><B
>msObjFilePath</B
> :: <A HREF="HscTypes.html#t%3AModSummary"
>ModSummary</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="5"
><A NAME="5"
>Information about the module being compiled
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HscSource"
><A NAME="t%3AHscSource"
></A
></A
><B
>HscSource</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:HsSrcFile"
><A NAME="v%3AHsSrcFile"
></A
></A
><B
>HsSrcFile</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsBootFile"
><A NAME="v%3AHsBootFile"
></A
></A
><B
>HsBootFile</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ExtCoreFile"
><A NAME="v%3AExtCoreFile"
></A
></A
><B
>ExtCoreFile</B
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HscSource')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HscSource" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="HscTypes.html#t%3AHscSource"
>HscSource</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> <A HREF="HscTypes.html#t%3AHscSource"
>HscSource</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="HscTypes.html#t%3AHscSource"
>HscSource</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isHsBoot"
><A NAME="v%3AisHsBoot"
></A
></A
><B
>isHsBoot</B
> :: <A HREF="HscTypes.html#t%3AHscSource"
>HscSource</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:hscSourceString"
><A NAME="v%3AhscSourceString"
></A
></A
><B
>hscSourceString</B
> :: <A HREF="HscTypes.html#t%3AHscSource"
>HscSource</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="6"
><A NAME="6"
>State relating to modules in this package
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:HomePackageTable"
><A NAME="t%3AHomePackageTable"
></A
></A
><B
>HomePackageTable</B
> = <A HREF="Module.html#t%3AModuleNameEnv"
>ModuleNameEnv</A
> <A HREF="HscTypes.html#t%3AHomeModInfo"
>HomeModInfo</A
></TD
></TR
><TR
><TD CLASS="doc"
>Helps us find information about modules in the home package
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HomeModInfo"
><A NAME="t%3AHomeModInfo"
></A
></A
><B
>HomeModInfo</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Information about modules in the package being compiled
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:HomeModInfo"
><A NAME="v%3AHomeModInfo"
></A
></A
><B
>HomeModInfo</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:hm_iface"
><A NAME="v%3Ahm_iface"
></A
></A
><B
>hm_iface</B
> :: !<A HREF="HscTypes.html#t%3AModIface"
>ModIface</A
></TD
><TD CLASS="rdoc"
>The basic loaded interface file: every loaded module has one of
 these, even if it is imported from another package
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:hm_details"
><A NAME="v%3Ahm_details"
></A
></A
><B
>hm_details</B
> :: !<A HREF="HscTypes.html#t%3AModDetails"
>ModDetails</A
></TD
><TD CLASS="rdoc"
>Extra information that has been created from the <TT
><A HREF="HscTypes.html#t%3AModIface"
>ModIface</A
></TT
> for
 the module, typically during typechecking
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:hm_linkable"
><A NAME="v%3Ahm_linkable"
></A
></A
><B
>hm_linkable</B
> :: !(<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="HscTypes.html#t%3ALinkable"
>Linkable</A
>)</TD
><TD CLASS="rdoc"
><P
>The actual artifact we would like to link to access things in
 this module.
</P
><P
><TT
><A HREF="HscTypes.html#v%3Ahm_linkable"
>hm_linkable</A
></TT
> might be Nothing:
</P
><P
>1. If this is an .hs-boot module
</P
><P
>2. Temporarily during compilation if we pruned away
      the old linkable because it was out of date.
</P
><P
>After a complete compilation (GHC.load), all <TT
><A HREF="HscTypes.html#v%3Ahm_linkable"
>hm_linkable</A
></TT
> fields
 in the <TT
><A HREF="HscTypes.html#t%3AHomePackageTable"
>HomePackageTable</A
></TT
> will be <TT
>Just</TT
>.
</P
><P
>When re-linking a module (HscMain.HscNoRecomp), we construct the
 <TT
><A HREF="HscTypes.html#t%3AHomeModInfo"
>HomeModInfo</A
></TT
> by building a new <TT
><A HREF="HscTypes.html#t%3AModDetails"
>ModDetails</A
></TT
> from the old
 <TT
><A HREF="HscTypes.html#t%3AModIface"
>ModIface</A
></TT
> (only).
</P
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:emptyHomePackageTable"
><A NAME="v%3AemptyHomePackageTable"
></A
></A
><B
>emptyHomePackageTable</B
> :: <A HREF="HscTypes.html#t%3AHomePackageTable"
>HomePackageTable</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:hptInstances"
><A NAME="v%3AhptInstances"
></A
></A
><B
>hptInstances</B
> :: <A HREF="HscTypes.html#t%3AHscEnv"
>HscEnv</A
> -&gt; (<A HREF="Module.html#t%3AModuleName"
>ModuleName</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
>) -&gt; ([<A HREF="InstEnv.html#t%3AInstance"
>Instance</A
>], [<A HREF="FamInstEnv.html#t%3AFamInst"
>FamInst</A
>])</TD
></TR
><TR
><TD CLASS="doc"
>Find all the instance declarations (of classes and families) that are in
 modules imported by this one, directly or indirectly, and are in the Home
 Package Table.  This ensures that we don't see instances from modules <TT
>--make</TT
>
 compiled before this one, but which are not below this one.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:hptRules"
><A NAME="v%3AhptRules"
></A
></A
><B
>hptRules</B
> :: <A HREF="HscTypes.html#t%3AHscEnv"
>HscEnv</A
> -&gt; [(<A HREF="Module.html#t%3AModuleName"
>ModuleName</A
>, <A HREF="HscTypes.html#t%3AIsBootInterface"
>IsBootInterface</A
>)] -&gt; [<A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
>]</TD
></TR
><TR
><TD CLASS="doc"
>Get rules from modules &quot;below&quot; this one (in the dependency sense)
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:hptVectInfo"
><A NAME="v%3AhptVectInfo"
></A
></A
><B
>hptVectInfo</B
> :: <A HREF="HscTypes.html#t%3AHscEnv"
>HscEnv</A
> -&gt; <A HREF="HscTypes.html#t%3AVectInfo"
>VectInfo</A
></TD
></TR
><TR
><TD CLASS="doc"
>Get the combined VectInfo of all modules in the home package table.  In
 contrast to instances and rules, we don't care whether the modules are
 &quot;below&quot; us in the dependency sense.  The VectInfo of those modules not &quot;below&quot; 
 us does not affect the compilation of the current module.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="7"
><A NAME="7"
>State relating to known packages
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:ExternalPackageState"
><A NAME="t%3AExternalPackageState"
></A
></A
><B
>ExternalPackageState</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Information about other packages that we have slurped in by reading
 their interface files
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:EPS"
><A NAME="v%3AEPS"
></A
></A
><B
>EPS</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:eps_is_boot"
><A NAME="v%3Aeps_is_boot"
></A
></A
><B
>eps_is_boot</B
> :: !(<A HREF="Module.html#t%3AModuleNameEnv"
>ModuleNameEnv</A
> (<A HREF="Module.html#t%3AModuleName"
>ModuleName</A
>, <A HREF="HscTypes.html#t%3AIsBootInterface"
>IsBootInterface</A
>))</TD
><TD CLASS="rdoc"
><P
>In OneShot mode (only), home-package modules
 accumulate in the external package state, and are
 sucked in lazily.  For these home-pkg modules
 (only) we need to record which are boot modules.
 We set this field after loading all the
 explicitly-imported interfaces, but before doing
 anything else
</P
><P
>The <TT
><A HREF="Module.html#t%3AModuleName"
>ModuleName</A
></TT
> part is not necessary, but it's useful for
 debug prints, and it's convenient because this field comes
 direct from TcRnTypes.imp_dep_mods
</P
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:eps_PIT"
><A NAME="v%3Aeps_PIT"
></A
></A
><B
>eps_PIT</B
> :: !<A HREF="HscTypes.html#t%3APackageIfaceTable"
>PackageIfaceTable</A
></TD
><TD CLASS="rdoc"
><P
>The <TT
><A HREF="HscTypes.html#t%3AModIface"
>ModIface</A
></TT
>s for modules in external packages
 whose interfaces we have opened.
 The declarations in these interface files are held in the
 eps_decls, <TT
><A HREF="HscTypes.html#v%3Aeps_inst_env"
>eps_inst_env</A
></TT
>, <TT
><A HREF="HscTypes.html#v%3Aeps_fam_inst_env"
>eps_fam_inst_env</A
></TT
> and eps_rules
 fields of this record, not in the <TT
><A HREF="HscTypes.html#v%3Ami_decls"
>mi_decls</A
></TT
> fields of the 
 interface we have sucked in.
</P
><P
>What <EM
>is</EM
> in the PIT is:
</P
><UL
><LI
> The Module
</LI
><LI
> Fingerprint info
</LI
><LI
> Its exports
</LI
><LI
> Fixities
</LI
><LI
> Deprecations and warnings
</LI
></UL
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:eps_PTE"
><A NAME="v%3Aeps_PTE"
></A
></A
><B
>eps_PTE</B
> :: !<A HREF="HscTypes.html#t%3APackageTypeEnv"
>PackageTypeEnv</A
></TD
><TD CLASS="rdoc"
>Result of typechecking all the external package
 interface files we have sucked in. The domain of
 the mapping is external-package modules
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:eps_inst_env"
><A NAME="v%3Aeps_inst_env"
></A
></A
><B
>eps_inst_env</B
> :: !<A HREF="HscTypes.html#t%3APackageInstEnv"
>PackageInstEnv</A
></TD
><TD CLASS="rdoc"
>The total <TT
><A HREF="InstEnv.html#t%3AInstEnv"
>InstEnv</A
></TT
> accumulated
 from all the external-package modules
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:eps_fam_inst_env"
><A NAME="v%3Aeps_fam_inst_env"
></A
></A
><B
>eps_fam_inst_env</B
> :: !PackageFamInstEnv</TD
><TD CLASS="rdoc"
>The total <TT
><A HREF="FamInstEnv.html#t%3AFamInstEnv"
>FamInstEnv</A
></TT
> accumulated
 from all the external-package modules
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:eps_rule_base"
><A NAME="v%3Aeps_rule_base"
></A
></A
><B
>eps_rule_base</B
> :: !<A HREF="HscTypes.html#t%3APackageRuleBase"
>PackageRuleBase</A
></TD
><TD CLASS="rdoc"
>The total RuleEnv accumulated
 from all the external-package modules
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:eps_vect_info"
><A NAME="v%3Aeps_vect_info"
></A
></A
><B
>eps_vect_info</B
> :: !PackageVectInfo</TD
><TD CLASS="rdoc"
>The total <TT
><A HREF="HscTypes.html#t%3AVectInfo"
>VectInfo</A
></TT
> accumulated
 from all the external-package modules
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:eps_ann_env"
><A NAME="v%3Aeps_ann_env"
></A
></A
><B
>eps_ann_env</B
> :: !PackageAnnEnv</TD
><TD CLASS="rdoc"
>The total <TT
><A HREF="Annotations.html#t%3AAnnEnv"
>AnnEnv</A
></TT
> accumulated
 from all the external-package modules
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:eps_mod_fam_inst_env"
><A NAME="v%3Aeps_mod_fam_inst_env"
></A
></A
><B
>eps_mod_fam_inst_env</B
> :: !(<A HREF="Module.html#t%3AModuleEnv"
>ModuleEnv</A
> <A HREF="FamInstEnv.html#t%3AFamInstEnv"
>FamInstEnv</A
>)</TD
><TD CLASS="rdoc"
>The family instances accumulated from external
 packages, keyed off the module that declared them
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:eps_stats"
><A NAME="v%3Aeps_stats"
></A
></A
><B
>eps_stats</B
> :: !<A HREF="HscTypes.html#t%3AEpsStats"
>EpsStats</A
></TD
><TD CLASS="rdoc"
>Stastics about what was loaded from external packages
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:EpsStats"
><A NAME="t%3AEpsStats"
></A
></A
><B
>EpsStats</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Accumulated statistics about what we are putting into the <TT
><A HREF="HscTypes.html#t%3AExternalPackageState"
>ExternalPackageState</A
></TT
>.
 &quot;In&quot; means stuff that is just <EM
>read</EM
> from interface files,
 &quot;Out&quot; means actually sucked in and type-checked
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:EpsStats"
><A NAME="v%3AEpsStats"
></A
></A
><B
>EpsStats</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:n_ifaces_in"
><A NAME="v%3An_ifaces_in"
></A
></A
><B
>n_ifaces_in</B
> :: !<A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:n_decls_in"
><A NAME="v%3An_decls_in"
></A
></A
><B
>n_decls_in</B
> :: !<A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:n_decls_out"
><A NAME="v%3An_decls_out"
></A
></A
><B
>n_decls_out</B
> :: !<A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:n_rules_in"
><A NAME="v%3An_rules_in"
></A
></A
><B
>n_rules_in</B
> :: !<A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:n_rules_out"
><A NAME="v%3An_rules_out"
></A
></A
><B
>n_rules_out</B
> :: !<A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:n_insts_in"
><A NAME="v%3An_insts_in"
></A
></A
><B
>n_insts_in</B
> :: !<A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:n_insts_out"
><A NAME="v%3An_insts_out"
></A
></A
><B
>n_insts_out</B
> :: !<A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:addEpsInStats"
><A NAME="v%3AaddEpsInStats"
></A
></A
><B
>addEpsInStats</B
> :: <A HREF="HscTypes.html#t%3AEpsStats"
>EpsStats</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="HscTypes.html#t%3AEpsStats"
>EpsStats</A
></TD
></TR
><TR
><TD CLASS="doc"
>Add stats for one newly-read interface
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:PackageTypeEnv"
><A NAME="t%3APackageTypeEnv"
></A
></A
><B
>PackageTypeEnv</B
> = <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:PackageIfaceTable"
><A NAME="t%3APackageIfaceTable"
></A
></A
><B
>PackageIfaceTable</B
> = <A HREF="Module.html#t%3AModuleEnv"
>ModuleEnv</A
> <A HREF="HscTypes.html#t%3AModIface"
>ModIface</A
></TD
></TR
><TR
><TD CLASS="doc"
>Helps us find information about modules in the imported packages
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:emptyPackageIfaceTable"
><A NAME="v%3AemptyPackageIfaceTable"
></A
></A
><B
>emptyPackageIfaceTable</B
> :: <A HREF="HscTypes.html#t%3APackageIfaceTable"
>PackageIfaceTable</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:lookupIfaceByModule"
><A NAME="v%3AlookupIfaceByModule"
></A
></A
><B
>lookupIfaceByModule</B
> :: <A HREF="DynFlags.html#t%3ADynFlags"
>DynFlags</A
> -&gt; <A HREF="HscTypes.html#t%3AHomePackageTable"
>HomePackageTable</A
> -&gt; <A HREF="HscTypes.html#t%3APackageIfaceTable"
>PackageIfaceTable</A
> -&gt; <A HREF="Module.html#t%3AModule"
>Module</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="HscTypes.html#t%3AModIface"
>ModIface</A
></TD
></TR
><TR
><TD CLASS="doc"
>Find the <TT
><A HREF="HscTypes.html#t%3AModIface"
>ModIface</A
></TT
> for a <TT
><A HREF="Module.html#t%3AModule"
>Module</A
></TT
>, searching in both the loaded home
 and external package module information
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:emptyModIface"
><A NAME="v%3AemptyModIface"
></A
></A
><B
>emptyModIface</B
> :: <A HREF="Module.html#t%3AModule"
>Module</A
> -&gt; <A HREF="HscTypes.html#t%3AModIface"
>ModIface</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:PackageInstEnv"
><A NAME="t%3APackageInstEnv"
></A
></A
><B
>PackageInstEnv</B
> = <A HREF="InstEnv.html#t%3AInstEnv"
>InstEnv</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:PackageRuleBase"
><A NAME="t%3APackageRuleBase"
></A
></A
><B
>PackageRuleBase</B
> = <A HREF="Rules.html#t%3ARuleBase"
>RuleBase</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="8"
><A NAME="8"
>Annotations
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:prepareAnnotations"
><A NAME="v%3AprepareAnnotations"
></A
></A
><B
>prepareAnnotations</B
> :: <A HREF="HscTypes.html#t%3AHscEnv"
>HscEnv</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="HscTypes.html#t%3AModGuts"
>ModGuts</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="Annotations.html#t%3AAnnEnv"
>AnnEnv</A
></TD
></TR
><TR
><TD CLASS="doc"
>Deal with gathering annotations in from all possible places 
   and combining them into a single <TT
><A HREF="Annotations.html#t%3AAnnEnv"
>AnnEnv</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="9"
><A NAME="9"
>Interactive context
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:InteractiveContext"
><A NAME="t%3AInteractiveContext"
></A
></A
><B
>InteractiveContext</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Interactive context, recording information relevant to GHCi
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:InteractiveContext"
><A NAME="v%3AInteractiveContext"
></A
></A
><B
>InteractiveContext</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:ic_toplev_scope"
><A NAME="v%3Aic_toplev_scope"
></A
></A
><B
>ic_toplev_scope</B
> :: [<A HREF="Module.html#t%3AModule"
>Module</A
>]</TD
><TD CLASS="rdoc"
>The context includes the <A HREF="top-level.html"
>top-level</A
> scope of
 these modules
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ic_exports"
><A NAME="v%3Aic_exports"
></A
></A
><B
>ic_exports</B
> :: [<A HREF="Module.html#t%3AModule"
>Module</A
>]</TD
><TD CLASS="rdoc"
>The context includes just the exports of these
 modules
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ic_rn_gbl_env"
><A NAME="v%3Aic_rn_gbl_env"
></A
></A
><B
>ic_rn_gbl_env</B
> :: <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
></TD
><TD CLASS="rdoc"
>The contexts' cached <TT
><A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
></TT
>, built from
 <TT
><A HREF="HscTypes.html#v%3Aic_toplev_scope"
>ic_toplev_scope</A
></TT
> and <TT
><A HREF="HscTypes.html#v%3Aic_exports"
>ic_exports</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ic_tmp_ids"
><A NAME="v%3Aic_tmp_ids"
></A
></A
><B
>ic_tmp_ids</B
> :: [<A HREF="Var.html#t%3AId"
>Id</A
>]</TD
><TD CLASS="rdoc"
>Names bound during interaction with the user.
 Later Ids shadow earlier ones with the same OccName.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ic_tyvars"
><A NAME="v%3Aic_tyvars"
></A
></A
><B
>ic_tyvars</B
> :: <A HREF="VarSet.html#t%3ATyVarSet"
>TyVarSet</A
></TD
><TD CLASS="rdoc"
>Skolem type variables free in
 <TT
><A HREF="HscTypes.html#v%3Aic_tmp_ids"
>ic_tmp_ids</A
></TT
>.  These arise at
 breakpoints in a polymorphic 
 context, where we have only partial
 type information.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ic_resume"
><A NAME="v%3Aic_resume"
></A
></A
><B
>ic_resume</B
> :: [<A HREF="InteractiveEval.html#t%3AResume"
>Resume</A
>]</TD
><TD CLASS="rdoc"
>The stack of breakpoint contexts
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ic_cwd"
><A NAME="v%3Aic_cwd"
></A
></A
><B
>ic_cwd</B
> :: <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:emptyInteractiveContext"
><A NAME="v%3AemptyInteractiveContext"
></A
></A
><B
>emptyInteractiveContext</B
> :: <A HREF="HscTypes.html#t%3AInteractiveContext"
>InteractiveContext</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:icPrintUnqual"
><A NAME="v%3AicPrintUnqual"
></A
></A
><B
>icPrintUnqual</B
> :: <A HREF="DynFlags.html#t%3ADynFlags"
>DynFlags</A
> -&gt; <A HREF="HscTypes.html#t%3AInteractiveContext"
>InteractiveContext</A
> -&gt; <A HREF="Outputable.html#t%3APrintUnqualified"
>PrintUnqualified</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:extendInteractiveContext"
><A NAME="v%3AextendInteractiveContext"
></A
></A
><B
>extendInteractiveContext</B
> :: <A HREF="HscTypes.html#t%3AInteractiveContext"
>InteractiveContext</A
> -&gt; [<A HREF="Var.html#t%3AId"
>Id</A
>] -&gt; <A HREF="VarSet.html#t%3ATyVarSet"
>TyVarSet</A
> -&gt; <A HREF="HscTypes.html#t%3AInteractiveContext"
>InteractiveContext</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:substInteractiveContext"
><A NAME="v%3AsubstInteractiveContext"
></A
></A
><B
>substInteractiveContext</B
> :: <A HREF="HscTypes.html#t%3AInteractiveContext"
>InteractiveContext</A
> -&gt; <A HREF="Type.html#t%3ATvSubst"
>TvSubst</A
> -&gt; <A HREF="HscTypes.html#t%3AInteractiveContext"
>InteractiveContext</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkPrintUnqualified"
><A NAME="v%3AmkPrintUnqualified"
></A
></A
><B
>mkPrintUnqualified</B
> :: <A HREF="DynFlags.html#t%3ADynFlags"
>DynFlags</A
> -&gt; <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
> -&gt; <A HREF="Outputable.html#t%3APrintUnqualified"
>PrintUnqualified</A
></TD
></TR
><TR
><TD CLASS="doc"
>Creates some functions that work out the best ways to format
 names for the user according to a set of heuristics
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:pprModulePrefix"
><A NAME="v%3ApprModulePrefix"
></A
></A
><B
>pprModulePrefix</B
> :: <A HREF="Outputable.html#t%3APprStyle"
>PprStyle</A
> -&gt; <A HREF="Module.html#t%3AModule"
>Module</A
> -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="Outputable.html#t%3ASDoc"
>SDoc</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="10"
><A NAME="10"
>Interfaces
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:ModIface"
><A NAME="t%3AModIface"
></A
></A
><B
>ModIface</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>A <TT
><A HREF="HscTypes.html#t%3AModIface"
>ModIface</A
></TT
> plus a <TT
><A HREF="HscTypes.html#t%3AModDetails"
>ModDetails</A
></TT
> summarises everything we know 
 about a compiled module.  The <TT
><A HREF="HscTypes.html#t%3AModIface"
>ModIface</A
></TT
> is the stuff *before* linking,
 and can be written out to an interface file. The 'ModDetails is after 
 linking and can be completely recovered from just the <TT
><A HREF="HscTypes.html#t%3AModIface"
>ModIface</A
></TT
>.
</P
><P
>When we read an interface file, we also construct a <TT
><A HREF="HscTypes.html#t%3AModIface"
>ModIface</A
></TT
> from it,
 except that we explicitly make the <TT
><A HREF="HscTypes.html#v%3Ami_decls"
>mi_decls</A
></TT
> and a few other fields empty;
 as when reading we consolidate the declarations etc. into a number of indexed
 maps and environments in the <TT
><A HREF="HscTypes.html#t%3AExternalPackageState"
>ExternalPackageState</A
></TT
>.
</P
></TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:ModIface"
><A NAME="v%3AModIface"
></A
></A
><B
>ModIface</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:mi_module"
><A NAME="v%3Ami_module"
></A
></A
><B
>mi_module</B
> :: !<A HREF="Module.html#t%3AModule"
>Module</A
></TD
><TD CLASS="rdoc"
>Name of the module we are for
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mi_iface_hash"
><A NAME="v%3Ami_iface_hash"
></A
></A
><B
>mi_iface_hash</B
> :: !<A HREF="Fingerprint.html#t%3AFingerprint"
>Fingerprint</A
></TD
><TD CLASS="rdoc"
>Hash of the whole interface
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mi_mod_hash"
><A NAME="v%3Ami_mod_hash"
></A
></A
><B
>mi_mod_hash</B
> :: !<A HREF="Fingerprint.html#t%3AFingerprint"
>Fingerprint</A
></TD
><TD CLASS="rdoc"
>Hash of the ABI only
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mi_orphan"
><A NAME="v%3Ami_orphan"
></A
></A
><B
>mi_orphan</B
> :: !<A HREF="HscTypes.html#t%3AWhetherHasOrphans"
>WhetherHasOrphans</A
></TD
><TD CLASS="rdoc"
>Whether this module has orphans
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mi_finsts"
><A NAME="v%3Ami_finsts"
></A
></A
><B
>mi_finsts</B
> :: !WhetherHasFamInst</TD
><TD CLASS="rdoc"
>Whether this module has family instances
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mi_boot"
><A NAME="v%3Ami_boot"
></A
></A
><B
>mi_boot</B
> :: !<A HREF="HscTypes.html#t%3AIsBootInterface"
>IsBootInterface</A
></TD
><TD CLASS="rdoc"
>Read from an hi-boot file?
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mi_deps"
><A NAME="v%3Ami_deps"
></A
></A
><B
>mi_deps</B
> :: <A HREF="HscTypes.html#t%3ADependencies"
>Dependencies</A
></TD
><TD CLASS="rdoc"
>The dependencies of the module.  This is
 consulted for directly-imported modules, but not
 for anything else (hence lazy)
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mi_usages"
><A NAME="v%3Ami_usages"
></A
></A
><B
>mi_usages</B
> :: [<A HREF="HscTypes.html#t%3AUsage"
>Usage</A
>]</TD
><TD CLASS="rdoc"
>Usages; kept sorted so that it's easy to decide
 whether to write a new iface file (changing usages
 doesn't affect the hash of this module)
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mi_exports"
><A NAME="v%3Ami_exports"
></A
></A
><B
>mi_exports</B
> :: ![<A HREF="HscTypes.html#t%3AIfaceExport"
>IfaceExport</A
>]</TD
><TD CLASS="rdoc"
>Records the modules that are the declaration points for things
 exported by this module, and the <TT
><A HREF="OccName.html#t%3AOccName"
>OccName</A
></TT
>s of those things
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mi_exp_hash"
><A NAME="v%3Ami_exp_hash"
></A
></A
><B
>mi_exp_hash</B
> :: !<A HREF="Fingerprint.html#t%3AFingerprint"
>Fingerprint</A
></TD
><TD CLASS="rdoc"
>Hash of export list
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mi_fixities"
><A NAME="v%3Ami_fixities"
></A
></A
><B
>mi_fixities</B
> :: [(<A HREF="OccName.html#t%3AOccName"
>OccName</A
>, <A HREF="BasicTypes.html#t%3AFixity"
>Fixity</A
>)]</TD
><TD CLASS="rdoc"
>Fixities
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mi_warns"
><A NAME="v%3Ami_warns"
></A
></A
><B
>mi_warns</B
> :: <A HREF="HscTypes.html#t%3AWarnings"
>Warnings</A
></TD
><TD CLASS="rdoc"
>Warnings
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mi_anns"
><A NAME="v%3Ami_anns"
></A
></A
><B
>mi_anns</B
> :: [<A HREF="IfaceSyn.html#t%3AIfaceAnnotation"
>IfaceAnnotation</A
>]</TD
><TD CLASS="rdoc"
>Annotations
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mi_decls"
><A NAME="v%3Ami_decls"
></A
></A
><B
>mi_decls</B
> :: [(<A HREF="Fingerprint.html#t%3AFingerprint"
>Fingerprint</A
>, <A HREF="IfaceSyn.html#t%3AIfaceDecl"
>IfaceDecl</A
>)]</TD
><TD CLASS="rdoc"
>Sorted type, variable, class etc. declarations
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mi_globals"
><A NAME="v%3Ami_globals"
></A
></A
><B
>mi_globals</B
> :: !(<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
>)</TD
><TD CLASS="rdoc"
><P
>Binds all the things defined at the top level in
 the <EM
>original source</EM
> code for this module. which
 is NOT the same as mi_exports, nor mi_decls (which
 may contains declarations for things not actually
 defined by the user).  Used for GHCi and for inspecting
 the contents of modules via the GHC API only.
</P
><P
>(We need the source file to figure out the
 top-level environment, if we didn't compile this module
 from source then this field contains <TT
>Nothing</TT
>).
</P
><P
>Strictly speaking this field should live in the
 <TT
><A HREF="HscTypes.html#t%3AHomeModInfo"
>HomeModInfo</A
></TT
>, but that leads to more plumbing.
</P
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mi_insts"
><A NAME="v%3Ami_insts"
></A
></A
><B
>mi_insts</B
> :: [<A HREF="IfaceSyn.html#t%3AIfaceInst"
>IfaceInst</A
>]</TD
><TD CLASS="rdoc"
>Sorted class instance
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mi_fam_insts"
><A NAME="v%3Ami_fam_insts"
></A
></A
><B
>mi_fam_insts</B
> :: [<A HREF="IfaceSyn.html#t%3AIfaceFamInst"
>IfaceFamInst</A
>]</TD
><TD CLASS="rdoc"
>Sorted family instances
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mi_rules"
><A NAME="v%3Ami_rules"
></A
></A
><B
>mi_rules</B
> :: [<A HREF="IfaceSyn.html#t%3AIfaceRule"
>IfaceRule</A
>]</TD
><TD CLASS="rdoc"
>Sorted rules
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mi_orphan_hash"
><A NAME="v%3Ami_orphan_hash"
></A
></A
><B
>mi_orphan_hash</B
> :: !<A HREF="Fingerprint.html#t%3AFingerprint"
>Fingerprint</A
></TD
><TD CLASS="rdoc"
>Hash for orphan rules and 
 class and family instances
 combined
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mi_vect_info"
><A NAME="v%3Ami_vect_info"
></A
></A
><B
>mi_vect_info</B
> :: !<A HREF="HscTypes.html#t%3AIfaceVectInfo"
>IfaceVectInfo</A
></TD
><TD CLASS="rdoc"
>Vectorisation information
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mi_warn_fn"
><A NAME="v%3Ami_warn_fn"
></A
></A
><B
>mi_warn_fn</B
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="HscTypes.html#t%3AWarningTxt"
>WarningTxt</A
></TD
><TD CLASS="rdoc"
>Cached lookup for <TT
><A HREF="HscTypes.html#v%3Ami_warns"
>mi_warns</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mi_fix_fn"
><A NAME="v%3Ami_fix_fn"
></A
></A
><B
>mi_fix_fn</B
> :: <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="BasicTypes.html#t%3AFixity"
>Fixity</A
></TD
><TD CLASS="rdoc"
>Cached lookup for <TT
><A HREF="HscTypes.html#v%3Ami_fixities"
>mi_fixities</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mi_hash_fn"
><A NAME="v%3Ami_hash_fn"
></A
></A
><B
>mi_hash_fn</B
> :: <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (<A HREF="OccName.html#t%3AOccName"
>OccName</A
>, <A HREF="Fingerprint.html#t%3AFingerprint"
>Fingerprint</A
>)</TD
><TD CLASS="rdoc"
>Cached lookup for <TT
><A HREF="HscTypes.html#v%3Ami_decls"
>mi_decls</A
></TT
>.
 The <TT
>Nothing</TT
> in <TT
><A HREF="HscTypes.html#v%3Ami_hash_fn"
>mi_hash_fn</A
></TT
> means that the thing
 isn't in decls. It's useful to know that when
 seeing if we are up to date wrt. the old interface.
 The <TT
><A HREF="OccName.html#t%3AOccName"
>OccName</A
></TT
> is the parent of the name, if it has one.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:mi_hpc"
><A NAME="v%3Ami_hpc"
></A
></A
><B
>mi_hpc</B
> :: !<A HREF="HscTypes.html#t%3AAnyHpcUsage"
>AnyHpcUsage</A
></TD
><TD CLASS="rdoc"
>True if this program uses Hpc at any point in the program.
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ModIface')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:ModIface" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Binary.html#t%3ABinary"
>Binary</A
> <A HREF="HscTypes.html#t%3AModIface"
>ModIface</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkIfaceWarnCache"
><A NAME="v%3AmkIfaceWarnCache"
></A
></A
><B
>mkIfaceWarnCache</B
> :: <A HREF="HscTypes.html#t%3AWarnings"
>Warnings</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="HscTypes.html#t%3AWarningTxt"
>WarningTxt</A
></TD
></TR
><TR
><TD CLASS="doc"
>Constructs the cache for the <TT
><A HREF="HscTypes.html#v%3Ami_warn_fn"
>mi_warn_fn</A
></TT
> field of a <TT
><A HREF="HscTypes.html#t%3AModIface"
>ModIface</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkIfaceHashCache"
><A NAME="v%3AmkIfaceHashCache"
></A
></A
><B
>mkIfaceHashCache</B
> :: [(<A HREF="Fingerprint.html#t%3AFingerprint"
>Fingerprint</A
>, <A HREF="IfaceSyn.html#t%3AIfaceDecl"
>IfaceDecl</A
>)] -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (<A HREF="OccName.html#t%3AOccName"
>OccName</A
>, <A HREF="Fingerprint.html#t%3AFingerprint"
>Fingerprint</A
>)</TD
></TR
><TR
><TD CLASS="doc"
>Constructs cache for the <TT
><A HREF="HscTypes.html#v%3Ami_hash_fn"
>mi_hash_fn</A
></TT
> field of a <TT
><A HREF="HscTypes.html#t%3AModIface"
>ModIface</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkIfaceFixCache"
><A NAME="v%3AmkIfaceFixCache"
></A
></A
><B
>mkIfaceFixCache</B
> :: [(<A HREF="OccName.html#t%3AOccName"
>OccName</A
>, <A HREF="BasicTypes.html#t%3AFixity"
>Fixity</A
>)] -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="BasicTypes.html#t%3AFixity"
>Fixity</A
></TD
></TR
><TR
><TD CLASS="doc"
>Creates cached lookup for the <TT
><A HREF="HscTypes.html#v%3Ami_fix_fn"
>mi_fix_fn</A
></TT
> field of <TT
><A HREF="HscTypes.html#t%3AModIface"
>ModIface</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:emptyIfaceWarnCache"
><A NAME="v%3AemptyIfaceWarnCache"
></A
></A
><B
>emptyIfaceWarnCache</B
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="HscTypes.html#t%3AWarningTxt"
>WarningTxt</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="11"
><A NAME="11"
>Fixity
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:FixityEnv"
><A NAME="t%3AFixityEnv"
></A
></A
><B
>FixityEnv</B
> = <A HREF="NameEnv.html#t%3ANameEnv"
>NameEnv</A
> <A HREF="HscTypes.html#t%3AFixItem"
>FixItem</A
></TD
></TR
><TR
><TD CLASS="doc"
>Fixity environment mapping names to their fixities
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:FixItem"
><A NAME="t%3AFixItem"
></A
></A
><B
>FixItem</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Fixity information for an <TT
><A HREF="Name.html#t%3AName"
>Name</A
></TT
>. We keep the OccName in the range 
 so that we can generate an interface from it
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:FixItem"
><A NAME="v%3AFixItem"
></A
></A
><B
>FixItem</B
> <A HREF="OccName.html#t%3AOccName"
>OccName</A
> <A HREF="BasicTypes.html#t%3AFixity"
>Fixity</A
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:FixItem')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:FixItem" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> <A HREF="HscTypes.html#t%3AFixItem"
>FixItem</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:lookupFixity"
><A NAME="v%3AlookupFixity"
></A
></A
><B
>lookupFixity</B
> :: <A HREF="HscTypes.html#t%3AFixityEnv"
>FixityEnv</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="BasicTypes.html#t%3AFixity"
>Fixity</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:emptyFixityEnv"
><A NAME="v%3AemptyFixityEnv"
></A
></A
><B
>emptyFixityEnv</B
> :: <A HREF="HscTypes.html#t%3AFixityEnv"
>FixityEnv</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="12"
><A NAME="12"
>TyThings and type environments
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:TyThing"
><A NAME="t%3ATyThing"
></A
></A
><B
>TyThing</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>A typecheckable-thing, essentially anything that has a name
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:AnId"
><A NAME="v%3AAnId"
></A
></A
><B
>AnId</B
> <A HREF="Var.html#t%3AId"
>Id</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ADataCon"
><A NAME="v%3AADataCon"
></A
></A
><B
>ADataCon</B
> <A HREF="DataCon.html#t%3ADataCon"
>DataCon</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ATyCon"
><A NAME="v%3AATyCon"
></A
></A
><B
>ATyCon</B
> <A HREF="TyCon.html#t%3ATyCon"
>TyCon</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:AClass"
><A NAME="v%3AAClass"
></A
></A
><B
>AClass</B
> <A HREF="Class.html#t%3AClass"
>Class</A
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:TyThing')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:TyThing" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> <A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Name.html#t%3ANamedThing"
>NamedThing</A
> <A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:tyThingClass"
><A NAME="v%3AtyThingClass"
></A
></A
><B
>tyThingClass</B
> :: <A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
> -&gt; <A HREF="Class.html#t%3AClass"
>Class</A
></TD
></TR
><TR
><TD CLASS="doc"
>Get the <TT
><A HREF="Class.html#t%3AClass"
>Class</A
></TT
> from a <TT
><A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
></TT
> if it is a class thing. Panics otherwise
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:tyThingTyCon"
><A NAME="v%3AtyThingTyCon"
></A
></A
><B
>tyThingTyCon</B
> :: <A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
> -&gt; <A HREF="TyCon.html#t%3ATyCon"
>TyCon</A
></TD
></TR
><TR
><TD CLASS="doc"
>Get the <TT
><A HREF="TyCon.html#t%3ATyCon"
>TyCon</A
></TT
> from a <TT
><A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
></TT
> if it is a type constructor thing. Panics otherwise
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:tyThingDataCon"
><A NAME="v%3AtyThingDataCon"
></A
></A
><B
>tyThingDataCon</B
> :: <A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
> -&gt; <A HREF="DataCon.html#t%3ADataCon"
>DataCon</A
></TD
></TR
><TR
><TD CLASS="doc"
>Get the <TT
><A HREF="DataCon.html#t%3ADataCon"
>DataCon</A
></TT
> from a <TT
><A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
></TT
> if it is a data constructor thing. Panics otherwise
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:tyThingId"
><A NAME="v%3AtyThingId"
></A
></A
><B
>tyThingId</B
> :: <A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
> -&gt; <A HREF="Var.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="doc"
>Get the <TT
><A HREF="Var.html#t%3AId"
>Id</A
></TT
> from a <TT
><A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
></TT
> if it is a id *or* data constructor thing. Panics otherwise
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:implicitTyThings"
><A NAME="v%3AimplicitTyThings"
></A
></A
><B
>implicitTyThings</B
> :: <A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
> -&gt; [<A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
>]</TD
></TR
><TR
><TD CLASS="doc"
>Determine the <TT
><A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
></TT
>s brought into scope by another <TT
><A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
></TT
>
 <EM
>other</EM
> than itself. For example, Id's don't have any implicit TyThings
 as they just bring themselves into scope, but classes bring their
 dictionary datatype, type constructor and some selector functions into
 scope, just for a start!
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isImplicitTyThing"
><A NAME="v%3AisImplicitTyThing"
></A
></A
><B
>isImplicitTyThing</B
> :: <A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
>Returns <TT
>True</TT
> if there should be no interface-file declaration
 for this thing on its own: either it is built-in, or it is part
 of some other declaration, or it is generated implicitly by some
 other declaration.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:TypeEnv"
><A NAME="t%3ATypeEnv"
></A
></A
><B
>TypeEnv</B
> = <A HREF="NameEnv.html#t%3ANameEnv"
>NameEnv</A
> <A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
></TD
></TR
><TR
><TD CLASS="doc"
>A map from <TT
><A HREF="Name.html#t%3AName"
>Name</A
></TT
>s to <TT
><A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
></TT
>s, constructed by typechecking
 local declarations or interface files
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:lookupType"
><A NAME="v%3AlookupType"
></A
></A
><B
>lookupType</B
> :: <A HREF="DynFlags.html#t%3ADynFlags"
>DynFlags</A
> -&gt; <A HREF="HscTypes.html#t%3AHomePackageTable"
>HomePackageTable</A
> -&gt; <A HREF="HscTypes.html#t%3APackageTypeEnv"
>PackageTypeEnv</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
></TD
></TR
><TR
><TD CLASS="doc"
>Find the <TT
><A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
></TT
> for the given <TT
><A HREF="Name.html#t%3AName"
>Name</A
></TT
> by using all the resources
 at our disposal: the compiled modules in the <TT
><A HREF="HscTypes.html#t%3AHomePackageTable"
>HomePackageTable</A
></TT
> and the
 compiled modules in other packages that live in <TT
><A HREF="HscTypes.html#t%3APackageTypeEnv"
>PackageTypeEnv</A
></TT
>. Note
 that this does NOT look up the <TT
><A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
></TT
> in the module being compiled: you
 have to do that yourself, if desired
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:lookupTypeHscEnv"
><A NAME="v%3AlookupTypeHscEnv"
></A
></A
><B
>lookupTypeHscEnv</B
> :: <A HREF="HscTypes.html#t%3AHscEnv"
>HscEnv</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
>)</TD
></TR
><TR
><TD CLASS="doc"
>As <TT
><A HREF="HscTypes.html#v%3AlookupType"
>lookupType</A
></TT
>, but with a marginally easier-to-use interface
 if you have a <TT
><A HREF="HscTypes.html#t%3AHscEnv"
>HscEnv</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkTypeEnv"
><A NAME="v%3AmkTypeEnv"
></A
></A
><B
>mkTypeEnv</B
> :: [<A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
>] -&gt; <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:emptyTypeEnv"
><A NAME="v%3AemptyTypeEnv"
></A
></A
><B
>emptyTypeEnv</B
> :: <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:extendTypeEnv"
><A NAME="v%3AextendTypeEnv"
></A
></A
><B
>extendTypeEnv</B
> :: <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
> -&gt; <A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
> -&gt; <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:extendTypeEnvList"
><A NAME="v%3AextendTypeEnvList"
></A
></A
><B
>extendTypeEnvList</B
> :: <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
> -&gt; [<A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
>] -&gt; <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:extendTypeEnvWithIds"
><A NAME="v%3AextendTypeEnvWithIds"
></A
></A
><B
>extendTypeEnvWithIds</B
> :: <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
> -&gt; [<A HREF="Var.html#t%3AId"
>Id</A
>] -&gt; <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:lookupTypeEnv"
><A NAME="v%3AlookupTypeEnv"
></A
></A
><B
>lookupTypeEnv</B
> :: <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:typeEnvElts"
><A NAME="v%3AtypeEnvElts"
></A
></A
><B
>typeEnvElts</B
> :: <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
> -&gt; [<A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
>]</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:typeEnvClasses"
><A NAME="v%3AtypeEnvClasses"
></A
></A
><B
>typeEnvClasses</B
> :: <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
> -&gt; [<A HREF="Class.html#t%3AClass"
>Class</A
>]</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:typeEnvTyCons"
><A NAME="v%3AtypeEnvTyCons"
></A
></A
><B
>typeEnvTyCons</B
> :: <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
> -&gt; [<A HREF="TyCon.html#t%3ATyCon"
>TyCon</A
>]</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:typeEnvIds"
><A NAME="v%3AtypeEnvIds"
></A
></A
><B
>typeEnvIds</B
> :: <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
> -&gt; [<A HREF="Var.html#t%3AId"
>Id</A
>]</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:typeEnvDataCons"
><A NAME="v%3AtypeEnvDataCons"
></A
></A
><B
>typeEnvDataCons</B
> :: <A HREF="HscTypes.html#t%3ATypeEnv"
>TypeEnv</A
> -&gt; [<A HREF="DataCon.html#t%3ADataCon"
>DataCon</A
>]</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="13"
><A NAME="13"
>MonadThings
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
> <A HREF="../base-4.2.0.2/Control-Monad.html#t%3AMonad"
>Monad</A
> m =&gt; <A NAME="t:MonadThings"
><A NAME="t%3AMonadThings"
></A
></A
><B
>MonadThings</B
> m  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Class that abstracts out the common ability of the monads in GHC
 to lookup a <TT
><A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
></TT
> in the monadic environment by <TT
><A HREF="Name.html#t%3AName"
>Name</A
></TT
>. Provides
 a number of related convenience functions for accessing particular
 kinds of <TT
><A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
>Methods</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A NAME="v:lookupThing"
><A NAME="v%3AlookupThing"
></A
></A
><B
>lookupThing</B
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; m <A HREF="HscTypes.html#t%3ATyThing"
>TyThing</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:lookupId"
><A NAME="v%3AlookupId"
></A
></A
><B
>lookupId</B
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; m <A HREF="Var.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:lookupDataCon"
><A NAME="v%3AlookupDataCon"
></A
></A
><B
>lookupDataCon</B
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; m <A HREF="DataCon.html#t%3ADataCon"
>DataCon</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:lookupTyCon"
><A NAME="v%3AlookupTyCon"
></A
></A
><B
>lookupTyCon</B
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; m <A HREF="TyCon.html#t%3ATyCon"
>TyCon</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:lookupClass"
><A NAME="v%3AlookupClass"
></A
></A
><B
>lookupClass</B
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; m <A HREF="Class.html#t%3AClass"
>Class</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:MonadThings')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:MonadThings" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="HscTypes.html#t%3AMonadThings"
>MonadThings</A
> <A HREF="CoreMonad.html#t%3ACoreM"
>CoreM</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="HscTypes.html#t%3AMonadThings"
>MonadThings</A
> (<A HREF="IOEnv.html#t%3AIOEnv"
>IOEnv</A
> (<A HREF="TcRnTypes.html#t%3AEnv"
>Env</A
> <A HREF="TcRnTypes.html#t%3ATcGblEnv"
>TcGblEnv</A
> <A HREF="TcRnTypes.html#t%3ATcLclEnv"
>TcLclEnv</A
>))</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="HscTypes.html#t%3AMonadThings"
>MonadThings</A
> (<A HREF="IOEnv.html#t%3AIOEnv"
>IOEnv</A
> (<A HREF="TcRnTypes.html#t%3AEnv"
>Env</A
> DsGblEnv DsLclEnv))</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="14"
><A NAME="14"
>Information on imports and exports
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:WhetherHasOrphans"
><A NAME="t%3AWhetherHasOrphans"
></A
></A
><B
>WhetherHasOrphans</B
> = <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
><P
>Records whether a module has orphans. An &quot;orphan&quot; is one of:
</P
><UL
><LI
> An instance declaration in a module other than the definition
   module for one of the type constructors or classes in the instance head
</LI
><LI
> A transformation rule in a module other than the one defining
   the function in the head of the rule
</LI
></UL
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:IsBootInterface"
><A NAME="t%3AIsBootInterface"
></A
></A
><B
>IsBootInterface</B
> = <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
>Did this module originate from a *-boot file?
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:Usage"
><A NAME="t%3AUsage"
></A
></A
><B
>Usage</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Records modules that we depend on by making a direct import from
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:UsagePackageModule"
><A NAME="v%3AUsagePackageModule"
></A
></A
><B
>UsagePackageModule</B
></TD
><TD CLASS="rdoc"
>Module from another package
</TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:usg_mod"
><A NAME="v%3Ausg_mod"
></A
></A
><B
>usg_mod</B
> :: <A HREF="Module.html#t%3AModule"
>Module</A
></TD
><TD CLASS="rdoc"
>External package module depended on
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:usg_mod_hash"
><A NAME="v%3Ausg_mod_hash"
></A
></A
><B
>usg_mod_hash</B
> :: <A HREF="Fingerprint.html#t%3AFingerprint"
>Fingerprint</A
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:UsageHomeModule"
><A NAME="v%3AUsageHomeModule"
></A
></A
><B
>UsageHomeModule</B
></TD
><TD CLASS="rdoc"
>Module from the current package
</TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:usg_mod_name"
><A NAME="v%3Ausg_mod_name"
></A
></A
><B
>usg_mod_name</B
> :: <A HREF="Module.html#t%3AModuleName"
>ModuleName</A
></TD
><TD CLASS="rdoc"
>Name of the module
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:usg_mod_hash"
><A NAME="v%3Ausg_mod_hash"
></A
></A
><B
>usg_mod_hash</B
> :: <A HREF="Fingerprint.html#t%3AFingerprint"
>Fingerprint</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:usg_entities"
><A NAME="v%3Ausg_entities"
></A
></A
><B
>usg_entities</B
> :: [(<A HREF="OccName.html#t%3AOccName"
>OccName</A
>, <A HREF="Fingerprint.html#t%3AFingerprint"
>Fingerprint</A
>)]</TD
><TD CLASS="rdoc"
>Entities we depend on, sorted by occurrence name and fingerprinted.
 NB: usages are for parent names only, e.g. type constructors 
 but not the associated data constructors.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:usg_exports"
><A NAME="v%3Ausg_exports"
></A
></A
><B
>usg_exports</B
> :: <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Fingerprint.html#t%3AFingerprint"
>Fingerprint</A
></TD
><TD CLASS="rdoc"
>Fingerprint for the export list we used to depend on this module,
 if we depend on the export list
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Usage')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Usage" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="HscTypes.html#t%3AUsage"
>Usage</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Binary.html#t%3ABinary"
>Binary</A
> <A HREF="HscTypes.html#t%3AUsage"
>Usage</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:Dependencies"
><A NAME="t%3ADependencies"
></A
></A
><B
>Dependencies</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>Dependency information about modules and packages below this one
 in the import hierarchy.
</P
><P
>Invariant: the dependencies of a module <TT
>M</TT
> never includes <TT
>M</TT
>.
</P
><P
>Invariant: none of the lists contain duplicates.
</P
></TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:Deps"
><A NAME="v%3ADeps"
></A
></A
><B
>Deps</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:dep_mods"
><A NAME="v%3Adep_mods"
></A
></A
><B
>dep_mods</B
> :: [(<A HREF="Module.html#t%3AModuleName"
>ModuleName</A
>, <A HREF="HscTypes.html#t%3AIsBootInterface"
>IsBootInterface</A
>)]</TD
><TD CLASS="rdoc"
>Home-package module dependencies
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:dep_pkgs"
><A NAME="v%3Adep_pkgs"
></A
></A
><B
>dep_pkgs</B
> :: [<A HREF="Module.html#t%3APackageId"
>PackageId</A
>]</TD
><TD CLASS="rdoc"
>External package dependencies
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:dep_orphs"
><A NAME="v%3Adep_orphs"
></A
></A
><B
>dep_orphs</B
> :: [<A HREF="Module.html#t%3AModule"
>Module</A
>]</TD
><TD CLASS="rdoc"
>Orphan modules (whether home or external pkg),
 *not* including family instance orphans as they
 are anyway included in <TT
><A HREF="HscTypes.html#v%3Adep_finsts"
>dep_finsts</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:dep_finsts"
><A NAME="v%3Adep_finsts"
></A
></A
><B
>dep_finsts</B
> :: [<A HREF="Module.html#t%3AModule"
>Module</A
>]</TD
><TD CLASS="rdoc"
>Modules that contain family instances (whether the
 instances are from the home or an external package)
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Dependencies')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Dependencies" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="HscTypes.html#t%3ADependencies"
>Dependencies</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Binary.html#t%3ABinary"
>Binary</A
> <A HREF="HscTypes.html#t%3ADependencies"
>Dependencies</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:noDependencies"
><A NAME="v%3AnoDependencies"
></A
></A
><B
>noDependencies</B
> :: <A HREF="HscTypes.html#t%3ADependencies"
>Dependencies</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:NameCache"
><A NAME="t%3ANameCache"
></A
></A
><B
>NameCache</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>The NameCache makes sure that there is just one Unique assigned for
 each original name; i.e. (module-name, occ-name) pair and provides
 something of a lookup mechanism for those names.
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:NameCache"
><A NAME="v%3ANameCache"
></A
></A
><B
>NameCache</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:nsUniqs"
><A NAME="v%3AnsUniqs"
></A
></A
><B
>nsUniqs</B
> :: <A HREF="UniqSupply.html#t%3AUniqSupply"
>UniqSupply</A
></TD
><TD CLASS="rdoc"
>Supply of uniques
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:nsNames"
><A NAME="v%3AnsNames"
></A
></A
><B
>nsNames</B
> :: <A HREF="HscTypes.html#t%3AOrigNameCache"
>OrigNameCache</A
></TD
><TD CLASS="rdoc"
>Ensures that one original name gets one unique
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:nsIPs"
><A NAME="v%3AnsIPs"
></A
></A
><B
>nsIPs</B
> :: <A HREF="HscTypes.html#t%3AOrigIParamCache"
>OrigIParamCache</A
></TD
><TD CLASS="rdoc"
>Ensures that one implicit parameter name gets one unique
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:OrigNameCache"
><A NAME="t%3AOrigNameCache"
></A
></A
><B
>OrigNameCache</B
> = <A HREF="Module.html#t%3AModuleEnv"
>ModuleEnv</A
> (<A HREF="OccName.html#t%3AOccEnv"
>OccEnv</A
> <A HREF="Name.html#t%3AName"
>Name</A
>)</TD
></TR
><TR
><TD CLASS="doc"
>Per-module cache of original <TT
><A HREF="OccName.html#t%3AOccName"
>OccName</A
></TT
>s given <TT
><A HREF="Name.html#t%3AName"
>Name</A
></TT
>s
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:OrigIParamCache"
><A NAME="t%3AOrigIParamCache"
></A
></A
><B
>OrigIParamCache</B
> = <A HREF="FiniteMap.html#t%3AFiniteMap"
>FiniteMap</A
> (<A HREF="BasicTypes.html#t%3AIPName"
>IPName</A
> <A HREF="OccName.html#t%3AOccName"
>OccName</A
>) (<A HREF="BasicTypes.html#t%3AIPName"
>IPName</A
> <A HREF="Name.html#t%3AName"
>Name</A
>)</TD
></TR
><TR
><TD CLASS="doc"
>Module-local cache of implicit parameter <TT
><A HREF="OccName.html#t%3AOccName"
>OccName</A
></TT
>s given <TT
><A HREF="Name.html#t%3AName"
>Name</A
></TT
>s
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:Avails"
><A NAME="t%3AAvails"
></A
></A
><B
>Avails</B
> = [<A HREF="HscTypes.html#t%3AAvailInfo"
>AvailInfo</A
>]</TD
></TR
><TR
><TD CLASS="doc"
>A collection of <TT
><A HREF="HscTypes.html#t%3AAvailInfo"
>AvailInfo</A
></TT
> - several things that are &quot;available&quot;
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:availsToNameSet"
><A NAME="v%3AavailsToNameSet"
></A
></A
><B
>availsToNameSet</B
> :: [<A HREF="HscTypes.html#t%3AAvailInfo"
>AvailInfo</A
>] -&gt; <A HREF="NameSet.html#t%3ANameSet"
>NameSet</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:availsToNameEnv"
><A NAME="v%3AavailsToNameEnv"
></A
></A
><B
>availsToNameEnv</B
> :: [<A HREF="HscTypes.html#t%3AAvailInfo"
>AvailInfo</A
>] -&gt; <A HREF="NameEnv.html#t%3ANameEnv"
>NameEnv</A
> <A HREF="HscTypes.html#t%3AAvailInfo"
>AvailInfo</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:availName"
><A NAME="v%3AavailName"
></A
></A
><B
>availName</B
> ::  <A HREF="HscTypes.html#t%3AGenAvailInfo"
>GenAvailInfo</A
> name -&gt; name</TD
></TR
><TR
><TD CLASS="doc"
>Just the main name made available, i.e. not the available pieces
 of type or class brought into scope by the <TT
><A HREF="HscTypes.html#t%3AGenAvailInfo"
>GenAvailInfo</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:availNames"
><A NAME="v%3AavailNames"
></A
></A
><B
>availNames</B
> ::  <A HREF="HscTypes.html#t%3AGenAvailInfo"
>GenAvailInfo</A
> name -&gt; [name]</TD
></TR
><TR
><TD CLASS="doc"
>All names made available by the availability information
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:GenAvailInfo"
><A NAME="t%3AGenAvailInfo"
></A
></A
><B
>GenAvailInfo</B
> name </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Records what things are <A HREF="available.html"
>available</A
>, i.e. in scope
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:Avail"
><A NAME="v%3AAvail"
></A
></A
><B
>Avail</B
> name</TD
><TD CLASS="rdoc"
>An ordinary identifier in scope
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:AvailTC"
><A NAME="v%3AAvailTC"
></A
></A
><B
>AvailTC</B
> name [name]</TD
><TD CLASS="rdoc"
><P
>A type or class in scope. Parameters:
</P
><P
>1) The name of the type or class
</P
><P
>2) The available pieces of type or class.
     NB: If the type or class is itself
     to be in scope, it must be in this list.
     Thus, typically: <TT
>AvailTC Eq [Eq, ==, /=]</TT
>
</P
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:GenAvailInfo')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:GenAvailInfo" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> name =&gt; <A HREF="../base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> (<A HREF="HscTypes.html#t%3AGenAvailInfo"
>GenAvailInfo</A
> name)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> n =&gt; <A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> (<A HREF="HscTypes.html#t%3AGenAvailInfo"
>GenAvailInfo</A
> n)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Binary.html#t%3ABinary"
>Binary</A
> name =&gt; <A HREF="Binary.html#t%3ABinary"
>Binary</A
> (<A HREF="HscTypes.html#t%3AGenAvailInfo"
>GenAvailInfo</A
> name)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:AvailInfo"
><A NAME="t%3AAvailInfo"
></A
></A
><B
>AvailInfo</B
> = <A HREF="HscTypes.html#t%3AGenAvailInfo"
>GenAvailInfo</A
> <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Name.html#t%3AName"
>Name</A
></TT
>d things that are available
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:RdrAvailInfo"
><A NAME="t%3ARdrAvailInfo"
></A
></A
><B
>RdrAvailInfo</B
> = <A HREF="HscTypes.html#t%3AGenAvailInfo"
>GenAvailInfo</A
> <A HREF="OccName.html#t%3AOccName"
>OccName</A
></TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TT
>d things that are available
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:IfaceExport"
><A NAME="t%3AIfaceExport"
></A
></A
><B
>IfaceExport</B
> = (<A HREF="Module.html#t%3AModule"
>Module</A
>, [<A HREF="HscTypes.html#t%3AGenAvailInfo"
>GenAvailInfo</A
> <A HREF="OccName.html#t%3AOccName"
>OccName</A
>])</TD
></TR
><TR
><TD CLASS="doc"
>The original names declared of a certain module that are exported
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="15"
><A NAME="15"
>Warnings
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:Warnings"
><A NAME="t%3AWarnings"
></A
></A
><B
>Warnings</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Warning information for a module
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:NoWarnings"
><A NAME="v%3ANoWarnings"
></A
></A
><B
>NoWarnings</B
></TD
><TD CLASS="rdoc"
>Nothing deprecated
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:WarnAll"
><A NAME="v%3AWarnAll"
></A
></A
><B
>WarnAll</B
> <A HREF="HscTypes.html#t%3AWarningTxt"
>WarningTxt</A
></TD
><TD CLASS="rdoc"
>Whole module deprecated
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:WarnSome"
><A NAME="v%3AWarnSome"
></A
></A
><B
>WarnSome</B
> [(<A HREF="OccName.html#t%3AOccName"
>OccName</A
>, <A HREF="HscTypes.html#t%3AWarningTxt"
>WarningTxt</A
>)]</TD
><TD CLASS="rdoc"
>Some specific things deprecated
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Warnings')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Warnings" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="HscTypes.html#t%3AWarnings"
>Warnings</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> <A HREF="HscTypes.html#t%3AWarnings"
>Warnings</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Binary.html#t%3ABinary"
>Binary</A
> <A HREF="HscTypes.html#t%3AWarnings"
>Warnings</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:WarningTxt"
><A NAME="t%3AWarningTxt"
></A
></A
><B
>WarningTxt</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:WarningTxt"
><A NAME="v%3AWarningTxt"
></A
></A
><B
>WarningTxt</B
> [<A HREF="FastString.html#t%3AFastString"
>FastString</A
>]</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:DeprecatedTxt"
><A NAME="v%3ADeprecatedTxt"
></A
></A
><B
>DeprecatedTxt</B
> [<A HREF="FastString.html#t%3AFastString"
>FastString</A
>]</TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:WarningTxt')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:WarningTxt" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="HscTypes.html#t%3AWarningTxt"
>WarningTxt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> <A HREF="HscTypes.html#t%3AWarningTxt"
>WarningTxt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Binary.html#t%3ABinary"
>Binary</A
> <A HREF="HscTypes.html#t%3AWarningTxt"
>WarningTxt</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:plusWarns"
><A NAME="v%3AplusWarns"
></A
></A
><B
>plusWarns</B
> :: <A HREF="HscTypes.html#t%3AWarnings"
>Warnings</A
> -&gt; <A HREF="HscTypes.html#t%3AWarnings"
>Warnings</A
> -&gt; <A HREF="HscTypes.html#t%3AWarnings"
>Warnings</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="16"
><A NAME="16"
>Linker stuff
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:Linkable"
><A NAME="t%3ALinkable"
></A
></A
><B
>Linkable</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Information we can use to dynamically link modules into the compiler
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:LM"
><A NAME="v%3ALM"
></A
></A
><B
>LM</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:linkableTime"
><A NAME="v%3AlinkableTime"
></A
></A
><B
>linkableTime</B
> :: <A HREF="../old-time-1.0.0.5/System-Time.html#t%3AClockTime"
>ClockTime</A
></TD
><TD CLASS="rdoc"
>Time at which this linkable was built
 (i.e. when the bytecodes were produced,
	 or the mod date on the files)
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:linkableModule"
><A NAME="v%3AlinkableModule"
></A
></A
><B
>linkableModule</B
> :: <A HREF="Module.html#t%3AModule"
>Module</A
></TD
><TD CLASS="rdoc"
>The linkable module itself
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:linkableUnlinked"
><A NAME="v%3AlinkableUnlinked"
></A
></A
><B
>linkableUnlinked</B
> :: [<A HREF="HscTypes.html#t%3AUnlinked"
>Unlinked</A
>]</TD
><TD CLASS="rdoc"
><P
>Those files and chunks of code we have yet to link.
</P
><P
>INVARIANT: A valid linkable always has at least one <TT
><A HREF="HscTypes.html#t%3AUnlinked"
>Unlinked</A
></TT
> item.
 If this list is empty, the Linkable represents a fake linkable, which
 is generated in HscNothing mode to avoid recompiling modules.
</P
><P
>XXX: Do items get removed from this list when they get linked?
</P
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Linkable')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Linkable" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> <A HREF="HscTypes.html#t%3ALinkable"
>Linkable</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isObjectLinkable"
><A NAME="v%3AisObjectLinkable"
></A
></A
><B
>isObjectLinkable</B
> :: <A HREF="HscTypes.html#t%3ALinkable"
>Linkable</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:Unlinked"
><A NAME="t%3AUnlinked"
></A
></A
><B
>Unlinked</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Objects which have yet to be linked by the compiler
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:DotO"
><A NAME="v%3ADotO"
></A
></A
><B
>DotO</B
> <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
><TD CLASS="rdoc"
>An object file (.o)
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:DotA"
><A NAME="v%3ADotA"
></A
></A
><B
>DotA</B
> <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
><TD CLASS="rdoc"
>Static archive file (.a)
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:DotDLL"
><A NAME="v%3ADotDLL"
></A
></A
><B
>DotDLL</B
> <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
><TD CLASS="rdoc"
>Dynamically linked library file (.so, .dll, .dylib)
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:BCOs"
><A NAME="v%3ABCOs"
></A
></A
><B
>BCOs</B
> <A HREF="HscTypes.html#t%3ACompiledByteCode"
>CompiledByteCode</A
> <A HREF="HscTypes.html#t%3AModBreaks"
>ModBreaks</A
></TD
><TD CLASS="rdoc"
>A byte-code object, lives only in memory
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Unlinked')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Unlinked" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> <A HREF="HscTypes.html#t%3AUnlinked"
>Unlinked</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:CompiledByteCode"
><A NAME="t%3ACompiledByteCode"
></A
></A
><B
>CompiledByteCode</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:CompiledByteCode')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:CompiledByteCode" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> <A HREF="HscTypes.html#t%3ACompiledByteCode"
>CompiledByteCode</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isObject"
><A NAME="v%3AisObject"
></A
></A
><B
>isObject</B
> :: <A HREF="HscTypes.html#t%3AUnlinked"
>Unlinked</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
>Is this an actual file on disk we can link in somehow?
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:nameOfObject"
><A NAME="v%3AnameOfObject"
></A
></A
><B
>nameOfObject</B
> :: <A HREF="HscTypes.html#t%3AUnlinked"
>Unlinked</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
></TR
><TR
><TD CLASS="doc"
>Retrieve the filename of the linkable if possible. Panic if it is a byte-code object
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isInterpretable"
><A NAME="v%3AisInterpretable"
></A
></A
><B
>isInterpretable</B
> :: <A HREF="HscTypes.html#t%3AUnlinked"
>Unlinked</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
>Is this a bytecode linkable with no file on disk?
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:byteCodeOfObject"
><A NAME="v%3AbyteCodeOfObject"
></A
></A
><B
>byteCodeOfObject</B
> :: <A HREF="HscTypes.html#t%3AUnlinked"
>Unlinked</A
> -&gt; <A HREF="HscTypes.html#t%3ACompiledByteCode"
>CompiledByteCode</A
></TD
></TR
><TR
><TD CLASS="doc"
>Retrieve the compiled byte-code if possible. Panic if it is a file-based linkable
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="17"
><A NAME="17"
>Program coverage
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HpcInfo"
><A NAME="t%3AHpcInfo"
></A
></A
><B
>HpcInfo</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Information about a modules use of Haskell Program Coverage
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:HpcInfo"
><A NAME="v%3AHpcInfo"
></A
></A
><B
>HpcInfo</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:hpcInfoTickCount"
><A NAME="v%3AhpcInfoTickCount"
></A
></A
><B
>hpcInfoTickCount</B
> :: <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:hpcInfoHash"
><A NAME="v%3AhpcInfoHash"
></A
></A
><B
>hpcInfoHash</B
> :: <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:NoHpcInfo"
><A NAME="v%3ANoHpcInfo"
></A
></A
><B
>NoHpcInfo</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:hpcUsed"
><A NAME="v%3AhpcUsed"
></A
></A
><B
>hpcUsed</B
> :: <A HREF="HscTypes.html#t%3AAnyHpcUsage"
>AnyHpcUsage</A
></TD
><TD CLASS="rdoc"
>Is hpc used anywhere on the module *tree*?
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:emptyHpcInfo"
><A NAME="v%3AemptyHpcInfo"
></A
></A
><B
>emptyHpcInfo</B
> :: <A HREF="HscTypes.html#t%3AAnyHpcUsage"
>AnyHpcUsage</A
> -&gt; <A HREF="HscTypes.html#t%3AHpcInfo"
>HpcInfo</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isHpcUsed"
><A NAME="v%3AisHpcUsed"
></A
></A
><B
>isHpcUsed</B
> :: <A HREF="HscTypes.html#t%3AHpcInfo"
>HpcInfo</A
> -&gt; <A HREF="HscTypes.html#t%3AAnyHpcUsage"
>AnyHpcUsage</A
></TD
></TR
><TR
><TD CLASS="doc"
>Find out if HPC is used by this module or any of the modules
 it depends upon
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:AnyHpcUsage"
><A NAME="t%3AAnyHpcUsage"
></A
></A
><B
>AnyHpcUsage</B
> = <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
>This is used to signal if one of my imports used HPC instrumentation
 even if there is no module-local HPC usage
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="18"
><A NAME="18"
>Breakpoints
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:ModBreaks"
><A NAME="t%3AModBreaks"
></A
></A
><B
>ModBreaks</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>All the information about the breakpoints for a given module
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:ModBreaks"
><A NAME="v%3AModBreaks"
></A
></A
><B
>ModBreaks</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:modBreaks_flags"
><A NAME="v%3AmodBreaks_flags"
></A
></A
><B
>modBreaks_flags</B
> :: <A HREF="BreakArray.html#t%3ABreakArray"
>BreakArray</A
></TD
><TD CLASS="rdoc"
>The array of flags, one per breakpoint, 
 indicating which breakpoints are enabled.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:modBreaks_locs"
><A NAME="v%3AmodBreaks_locs"
></A
></A
><B
>modBreaks_locs</B
> :: !(<A HREF="../array-0.3.0.1/Data-Array.html#t%3AArray"
>Array</A
> <A HREF="HscTypes.html#t%3ABreakIndex"
>BreakIndex</A
> <A HREF="SrcLoc.html#t%3ASrcSpan"
>SrcSpan</A
>)</TD
><TD CLASS="rdoc"
>An array giving the source span of each breakpoint.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:modBreaks_vars"
><A NAME="v%3AmodBreaks_vars"
></A
></A
><B
>modBreaks_vars</B
> :: !(<A HREF="../array-0.3.0.1/Data-Array.html#t%3AArray"
>Array</A
> <A HREF="HscTypes.html#t%3ABreakIndex"
>BreakIndex</A
> [<A HREF="OccName.html#t%3AOccName"
>OccName</A
>])</TD
><TD CLASS="rdoc"
>An array giving the names of the free variables at each breakpoint.
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:BreakIndex"
><A NAME="t%3ABreakIndex"
></A
></A
><B
>BreakIndex</B
> = <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="doc"
>Breakpoint index
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:emptyModBreaks"
><A NAME="v%3AemptyModBreaks"
></A
></A
><B
>emptyModBreaks</B
> :: <A HREF="HscTypes.html#t%3AModBreaks"
>ModBreaks</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="19"
><A NAME="19"
>Vectorisation information
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:VectInfo"
><A NAME="t%3AVectInfo"
></A
></A
><B
>VectInfo</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Vectorisation information for <TT
><A HREF="HscTypes.html#t%3AModGuts"
>ModGuts</A
></TT
>, <TT
><A HREF="HscTypes.html#t%3AModDetails"
>ModDetails</A
></TT
> and <TT
><A HREF="HscTypes.html#t%3AExternalPackageState"
>ExternalPackageState</A
></TT
>.
 All of this information is always tidy, even in ModGuts.
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:VectInfo"
><A NAME="v%3AVectInfo"
></A
></A
><B
>VectInfo</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:vectInfoVar"
><A NAME="v%3AvectInfoVar"
></A
></A
><B
>vectInfoVar</B
> :: <A HREF="VarEnv.html#t%3AVarEnv"
>VarEnv</A
> (<A HREF="Var.html#t%3AVar"
>Var</A
>, <A HREF="Var.html#t%3AVar"
>Var</A
>)</TD
><TD CLASS="rdoc"
><TT
>(f, f_v)</TT
> keyed on <TT
>f</TT
>
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:vectInfoTyCon"
><A NAME="v%3AvectInfoTyCon"
></A
></A
><B
>vectInfoTyCon</B
> :: <A HREF="NameEnv.html#t%3ANameEnv"
>NameEnv</A
> (<A HREF="TyCon.html#t%3ATyCon"
>TyCon</A
>, <A HREF="TyCon.html#t%3ATyCon"
>TyCon</A
>)</TD
><TD CLASS="rdoc"
><TT
>(T, T_v)</TT
> keyed on <TT
>T</TT
>
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:vectInfoDataCon"
><A NAME="v%3AvectInfoDataCon"
></A
></A
><B
>vectInfoDataCon</B
> :: <A HREF="NameEnv.html#t%3ANameEnv"
>NameEnv</A
> (<A HREF="DataCon.html#t%3ADataCon"
>DataCon</A
>, <A HREF="DataCon.html#t%3ADataCon"
>DataCon</A
>)</TD
><TD CLASS="rdoc"
><TT
>(C, C_v)</TT
> keyed on <TT
>C</TT
>
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:vectInfoPADFun"
><A NAME="v%3AvectInfoPADFun"
></A
></A
><B
>vectInfoPADFun</B
> :: <A HREF="NameEnv.html#t%3ANameEnv"
>NameEnv</A
> (<A HREF="TyCon.html#t%3ATyCon"
>TyCon</A
>, <A HREF="Var.html#t%3AVar"
>Var</A
>)</TD
><TD CLASS="rdoc"
><TT
>(T_v, paT)</TT
> keyed on <TT
>T_v</TT
>
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:vectInfoIso"
><A NAME="v%3AvectInfoIso"
></A
></A
><B
>vectInfoIso</B
> :: <A HREF="NameEnv.html#t%3ANameEnv"
>NameEnv</A
> (<A HREF="TyCon.html#t%3ATyCon"
>TyCon</A
>, <A HREF="Var.html#t%3AVar"
>Var</A
>)</TD
><TD CLASS="rdoc"
><TT
>(T, isoT)</TT
> keyed on <TT
>T</TT
>
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:IfaceVectInfo"
><A NAME="t%3AIfaceVectInfo"
></A
></A
><B
>IfaceVectInfo</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Vectorisation information for <TT
><A HREF="HscTypes.html#t%3AModIface"
>ModIface</A
></TT
>: a slightly less low-level view
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:IfaceVectInfo"
><A NAME="v%3AIfaceVectInfo"
></A
></A
><B
>IfaceVectInfo</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:ifaceVectInfoVar"
><A NAME="v%3AifaceVectInfoVar"
></A
></A
><B
>ifaceVectInfoVar</B
> :: [<A HREF="Name.html#t%3AName"
>Name</A
>]</TD
><TD CLASS="rdoc"
>All variables in here have a vectorised variant
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ifaceVectInfoTyCon"
><A NAME="v%3AifaceVectInfoTyCon"
></A
></A
><B
>ifaceVectInfoTyCon</B
> :: [<A HREF="Name.html#t%3AName"
>Name</A
>]</TD
><TD CLASS="rdoc"
>All <TT
><A HREF="TyCon.html#t%3ATyCon"
>TyCon</A
></TT
>s in here have a vectorised variant;
 the name of the vectorised variant and those of its
 data constructors are determined by OccName.mkVectTyConOcc
 and OccName.mkVectDataConOcc; the names of
 the isomorphisms are determined by OccName.mkVectIsoOcc
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ifaceVectInfoTyConReuse"
><A NAME="v%3AifaceVectInfoTyConReuse"
></A
></A
><B
>ifaceVectInfoTyConReuse</B
> :: [<A HREF="Name.html#t%3AName"
>Name</A
>]</TD
><TD CLASS="rdoc"
>The vectorised form of all the <TT
><A HREF="TyCon.html#t%3ATyCon"
>TyCon</A
></TT
>s in here coincides with
 the unconverted form; the name of the isomorphisms is determined
 by OccName.mkVectIsoOcc
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:IfaceVectInfo')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:IfaceVectInfo" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Binary.html#t%3ABinary"
>Binary</A
> <A HREF="HscTypes.html#t%3AIfaceVectInfo"
>IfaceVectInfo</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:noVectInfo"
><A NAME="v%3AnoVectInfo"
></A
></A
><B
>noVectInfo</B
> :: <A HREF="HscTypes.html#t%3AVectInfo"
>VectInfo</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:plusVectInfo"
><A NAME="v%3AplusVectInfo"
></A
></A
><B
>plusVectInfo</B
> :: <A HREF="HscTypes.html#t%3AVectInfo"
>VectInfo</A
> -&gt; <A HREF="HscTypes.html#t%3AVectInfo"
>VectInfo</A
> -&gt; <A HREF="HscTypes.html#t%3AVectInfo"
>VectInfo</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:noIfaceVectInfo"
><A NAME="v%3AnoIfaceVectInfo"
></A
></A
><B
>noIfaceVectInfo</B
> :: <A HREF="HscTypes.html#t%3AIfaceVectInfo"
>IfaceVectInfo</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="botbar"
>Produced by <A HREF="http://www.haskell.org/haddock/"
>Haddock</A
> version 2.6.1</TD
></TR
></TABLE
></BODY
></HTML
>