<!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 >HscMain</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_HscMain.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" >HscMain</FONT ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Description</TD ></TR ><TR ><TD CLASS="doc" ><P >Main driver for the compiling plain Haskell source code. </P ><P >This module implements compilation of a Haskell-only source file. It is <EM >not</EM > concerned with preprocessing of source files; this is handled in <A HREF="DriverPipeline.html" >DriverPipeline</A >. </P ></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" ><A HREF="#v%3AnewHscEnv" >newHscEnv</A > :: <A HREF="HscTypes.html#t%3AGhcApiCallbacks" >GhcApiCallbacks</A > -> <A HREF="DynFlags.html#t%3ADynFlags" >DynFlags</A > -> <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="HscTypes.html#t%3AHscEnv" >HscEnv</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AhscCmmFile" >hscCmmFile</A > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="HscTypes.html#t%3AHscEnv" >HscEnv</A > -> <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath" >FilePath</A > -> 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%3AhscParseIdentifier" >hscParseIdentifier</A > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="DynFlags.html#t%3ADynFlags" >DynFlags</A > -> <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> m (<A HREF="SrcLoc.html#t%3ALocated" >Located</A > <A HREF="RdrName.html#t%3ARdrName" >RdrName</A >)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AhscSimplify" >hscSimplify</A > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="HscTypes.html#t%3AModGuts" >ModGuts</A > -> m <A HREF="HscTypes.html#t%3AModGuts" >ModGuts</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AhscNormalIface" >hscNormalIface</A > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="HscTypes.html#t%3AModGuts" >ModGuts</A > -> <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="Fingerprint.html#t%3AFingerprint" >Fingerprint</A > -> m (<A HREF="HscTypes.html#t%3AModIface" >ModIface</A >, <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A >, <A HREF="HscTypes.html#t%3AModDetails" >ModDetails</A >, <A HREF="HscTypes.html#t%3ACgGuts" >CgGuts</A >)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AhscWriteIface" >hscWriteIface</A > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="HscTypes.html#t%3AModIface" >ModIface</A > -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A > -> <A HREF="HscTypes.html#t%3AModSummary" >ModSummary</A > -> 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%3AhscGenHardCode" >hscGenHardCode</A > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="HscTypes.html#t%3ACgGuts" >CgGuts</A > -> <A HREF="HscTypes.html#t%3AModSummary" >ModSummary</A > -> 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" ><A HREF="#v%3AhscStmt" >hscStmt</A > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="HscTypes.html#t%3AHscEnv" >HscEnv</A > -> <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> m (<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > ([<A HREF="Var.html#t%3AId" >Id</A >], <A HREF="ByteCodeLink.html#t%3AHValue" >HValue</A >))</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AhscTcExpr" >hscTcExpr</A > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="HscTypes.html#t%3AHscEnv" >HscEnv</A > -> <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> m <A HREF="Type.html#t%3AType" >Type</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AhscKcType" >hscKcType</A > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="HscTypes.html#t%3AHscEnv" >HscEnv</A > -> <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> m <A HREF="Type.html#t%3AKind" >Kind</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcompileExpr" >compileExpr</A > :: <A HREF="HscTypes.html#t%3AHscEnv" >HscEnv</A > -> <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="CoreSyn.html#t%3ACoreExpr" >CoreExpr</A > -> <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="ByteCodeLink.html#t%3AHValue" >HValue</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AHsCompiler" >HsCompiler</A > a = <A HREF="#v%3AHsCompiler" >HsCompiler</A > {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="recfield" ><A HREF="#v%3AhscCompile" >hscCompile</A > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="HscTypes.html#t%3AHscEnv" >HscEnv</A > -> <A HREF="HscTypes.html#t%3AModSummary" >ModSummary</A > -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A > -> <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="HscTypes.html#t%3AModIface" >ModIface</A > -> <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > (<A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A >, <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A >) -> m a</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3AhscNoRecomp" >hscNoRecomp</A > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="HscTypes.html#t%3AModIface" >ModIface</A > -> m a</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3AhscRecompile" >hscRecompile</A > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="HscTypes.html#t%3AModSummary" >ModSummary</A > -> <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="Fingerprint.html#t%3AFingerprint" >Fingerprint</A > -> m a</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3AhscBackend" >hscBackend</A > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="TcRnTypes.html#t%3ATcGblEnv" >TcGblEnv</A > -> <A HREF="HscTypes.html#t%3AModSummary" >ModSummary</A > -> <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="Fingerprint.html#t%3AFingerprint" >Fingerprint</A > -> m a</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3AhscGenBootOutput" >hscGenBootOutput</A > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="TcRnTypes.html#t%3ATcGblEnv" >TcGblEnv</A > -> <A HREF="HscTypes.html#t%3AModSummary" >ModSummary</A > -> <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="Fingerprint.html#t%3AFingerprint" >Fingerprint</A > -> m a</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3AhscGenOutput" >hscGenOutput</A > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="HscTypes.html#t%3AModGuts" >ModGuts</A > -> <A HREF="HscTypes.html#t%3AModSummary" >ModSummary</A > -> <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="Fingerprint.html#t%3AFingerprint" >Fingerprint</A > -> m a</TD ></TR ></TABLE >}</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AhscOneShotCompiler" >hscOneShotCompiler</A > :: <A HREF="HscMain.html#t%3AHsCompiler" >HsCompiler</A > OneShotResult</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AhscNothingCompiler" >hscNothingCompiler</A > :: <A HREF="HscMain.html#t%3AHsCompiler" >HsCompiler</A > NothingResult</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AhscInteractiveCompiler" >hscInteractiveCompiler</A > :: <A HREF="HscMain.html#t%3AHsCompiler" >HsCompiler</A > InteractiveResult</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AhscBatchCompiler" >hscBatchCompiler</A > :: <A HREF="HscMain.html#t%3AHsCompiler" >HsCompiler</A > BatchResult</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AhscCompileOneShot" >hscCompileOneShot</A > :: Compiler OneShotResult</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AhscCompileBatch" >hscCompileBatch</A > :: Compiler (<A HREF="HscMain.html#t%3AHscStatus" >HscStatus</A >, <A HREF="HscTypes.html#t%3AModIface" >ModIface</A >, <A HREF="HscTypes.html#t%3AModDetails" >ModDetails</A >)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AhscCompileNothing" >hscCompileNothing</A > :: Compiler (<A HREF="HscMain.html#t%3AHscStatus" >HscStatus</A >, <A HREF="HscTypes.html#t%3AModIface" >ModIface</A >, <A HREF="HscTypes.html#t%3AModDetails" >ModDetails</A >)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AhscCompileInteractive" >hscCompileInteractive</A > :: Compiler (<A HREF="HscMain.html#t%3AInteractiveStatus" >InteractiveStatus</A >, <A HREF="HscTypes.html#t%3AModIface" >ModIface</A >, <A HREF="HscTypes.html#t%3AModDetails" >ModDetails</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%3AHscStatus%27" >HscStatus'</A > a </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3AHscNoRecomp" >HscNoRecomp</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AHscRecomp" >HscRecomp</A > <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A > 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%3AInteractiveStatus" >InteractiveStatus</A > = <A HREF="HscMain.html#t%3AHscStatus%27" >HscStatus'</A > (<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > (<A HREF="ByteCodeAsm.html#t%3ACompiledByteCode" >CompiledByteCode</A >, <A HREF="HscTypes.html#t%3AModBreaks" >ModBreaks</A >))</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3AHscStatus" >HscStatus</A > = <A HREF="HscMain.html#t%3AHscStatus%27" >HscStatus'</A > <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%3AhscParse" >hscParse</A > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="HscTypes.html#t%3AModSummary" >ModSummary</A > -> m (<A HREF="SrcLoc.html#t%3ALocated" >Located</A > (<A HREF="HsSyn.html#t%3AHsModule" >HsModule</A > <A HREF="RdrName.html#t%3ARdrName" >RdrName</A >))</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AhscTypecheck" >hscTypecheck</A > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="HscTypes.html#t%3AModSummary" >ModSummary</A > -> <A HREF="SrcLoc.html#t%3ALocated" >Located</A > (<A HREF="HsSyn.html#t%3AHsModule" >HsModule</A > <A HREF="RdrName.html#t%3ARdrName" >RdrName</A >) -> m <A HREF="TcRnTypes.html#t%3ATcGblEnv" >TcGblEnv</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AhscTypecheckRename" >hscTypecheckRename</A > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="HscTypes.html#t%3AModSummary" >ModSummary</A > -> <A HREF="SrcLoc.html#t%3ALocated" >Located</A > (<A HREF="HsSyn.html#t%3AHsModule" >HsModule</A > <A HREF="RdrName.html#t%3ARdrName" >RdrName</A >) -> m (<A HREF="TcRnTypes.html#t%3ATcGblEnv" >TcGblEnv</A >, RenamedStuff)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AhscDesugar" >hscDesugar</A > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="HscTypes.html#t%3AModSummary" >ModSummary</A > -> <A HREF="TcRnTypes.html#t%3ATcGblEnv" >TcGblEnv</A > -> m <A HREF="HscTypes.html#t%3AModGuts" >ModGuts</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmakeSimpleIface" >makeSimpleIface</A > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="HscTypes.html#t%3AModIface" >ModIface</A > -> <A HREF="TcRnTypes.html#t%3ATcGblEnv" >TcGblEnv</A > -> <A HREF="HscTypes.html#t%3AModDetails" >ModDetails</A > -> m (<A HREF="HscTypes.html#t%3AModIface" >ModIface</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" ><A HREF="#v%3AmakeSimpleDetails" >makeSimpleDetails</A > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="TcRnTypes.html#t%3ATcGblEnv" >TcGblEnv</A > -> m <A HREF="HscTypes.html#t%3AModDetails" >ModDetails</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Documentation</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:newHscEnv" ><A NAME="v%3AnewHscEnv" ></A ></A ><B >newHscEnv</B > :: <A HREF="HscTypes.html#t%3AGhcApiCallbacks" >GhcApiCallbacks</A > -> <A HREF="DynFlags.html#t%3ADynFlags" >DynFlags</A > -> <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="HscTypes.html#t%3AHscEnv" >HscEnv</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:hscCmmFile" ><A NAME="v%3AhscCmmFile" ></A ></A ><B >hscCmmFile</B > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="HscTypes.html#t%3AHscEnv" >HscEnv</A > -> <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath" >FilePath</A > -> 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:hscParseIdentifier" ><A NAME="v%3AhscParseIdentifier" ></A ></A ><B >hscParseIdentifier</B > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="DynFlags.html#t%3ADynFlags" >DynFlags</A > -> <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> m (<A HREF="SrcLoc.html#t%3ALocated" >Located</A > <A HREF="RdrName.html#t%3ARdrName" >RdrName</A >)</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:hscSimplify" ><A NAME="v%3AhscSimplify" ></A ></A ><B >hscSimplify</B > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="HscTypes.html#t%3AModGuts" >ModGuts</A > -> m <A HREF="HscTypes.html#t%3AModGuts" >ModGuts</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:hscNormalIface" ><A NAME="v%3AhscNormalIface" ></A ></A ><B >hscNormalIface</B > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="HscTypes.html#t%3AModGuts" >ModGuts</A > -> <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="Fingerprint.html#t%3AFingerprint" >Fingerprint</A > -> m (<A HREF="HscTypes.html#t%3AModIface" >ModIface</A >, <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A >, <A HREF="HscTypes.html#t%3AModDetails" >ModDetails</A >, <A HREF="HscTypes.html#t%3ACgGuts" >CgGuts</A >)</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:hscWriteIface" ><A NAME="v%3AhscWriteIface" ></A ></A ><B >hscWriteIface</B > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="HscTypes.html#t%3AModIface" >ModIface</A > -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A > -> <A HREF="HscTypes.html#t%3AModSummary" >ModSummary</A > -> 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:hscGenHardCode" ><A NAME="v%3AhscGenHardCode" ></A ></A ><B >hscGenHardCode</B ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >=> <A HREF="HscTypes.html#t%3ACgGuts" >CgGuts</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="HscTypes.html#t%3AModSummary" >ModSummary</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >-> m <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ><TD CLASS="rdoc" ><TT >True</TT > <A HREF="=" >=</A > stub.c exists </TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" >Compile to hard-code. </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:hscStmt" ><A NAME="v%3AhscStmt" ></A ></A ><B >hscStmt</B ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >=> <A HREF="HscTypes.html#t%3AHscEnv" >HscEnv</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >-> m (<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > ([<A HREF="Var.html#t%3AId" >Id</A >], <A HREF="ByteCodeLink.html#t%3AHValue" >HValue</A >))</TD ><TD CLASS="rdoc" ><TT ><A HREF="../base-4.2.0.2/Data-Maybe.html#v%3ANothing" >Nothing</A ></TT > <A HREF="==" >==</A > empty statement (or comment only), but no parse error </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:hscTcExpr" ><A NAME="v%3AhscTcExpr" ></A ></A ><B >hscTcExpr</B > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="HscTypes.html#t%3AHscEnv" >HscEnv</A > -> <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> m <A HREF="Type.html#t%3AType" >Type</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:hscKcType" ><A NAME="v%3AhscKcType" ></A ></A ><B >hscKcType</B ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >=> <A HREF="HscTypes.html#t%3AHscEnv" >HscEnv</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ><TD CLASS="rdoc" >The type </TD ></TR ><TR ><TD CLASS="arg" >-> m <A HREF="Type.html#t%3AKind" >Kind</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" >Find the kind of a type </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:compileExpr" ><A NAME="v%3AcompileExpr" ></A ></A ><B >compileExpr</B > :: <A HREF="HscTypes.html#t%3AHscEnv" >HscEnv</A > -> <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="CoreSyn.html#t%3ACoreExpr" >CoreExpr</A > -> <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="ByteCodeLink.html#t%3AHValue" >HValue</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:HsCompiler" ><A NAME="t%3AHsCompiler" ></A ></A ><B >HsCompiler</B > a </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="5" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:HsCompiler" ><A NAME="v%3AHsCompiler" ></A ></A ><B >HsCompiler</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:hscCompile" ><A NAME="v%3AhscCompile" ></A ></A ><B >hscCompile</B > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="HscTypes.html#t%3AHscEnv" >HscEnv</A > -> <A HREF="HscTypes.html#t%3AModSummary" >ModSummary</A > -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A > -> <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="HscTypes.html#t%3AModIface" >ModIface</A > -> <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > (<A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A >, <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A >) -> m a</TD ><TD CLASS="rdoc" >The main interface. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:hscNoRecomp" ><A NAME="v%3AhscNoRecomp" ></A ></A ><B >hscNoRecomp</B > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="HscTypes.html#t%3AModIface" >ModIface</A > -> m a</TD ><TD CLASS="rdoc" >Called when no recompilation is necessary. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:hscRecompile" ><A NAME="v%3AhscRecompile" ></A ></A ><B >hscRecompile</B > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="HscTypes.html#t%3AModSummary" >ModSummary</A > -> <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="Fingerprint.html#t%3AFingerprint" >Fingerprint</A > -> m a</TD ><TD CLASS="rdoc" >Called to recompile the module. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:hscBackend" ><A NAME="v%3AhscBackend" ></A ></A ><B >hscBackend</B > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="TcRnTypes.html#t%3ATcGblEnv" >TcGblEnv</A > -> <A HREF="HscTypes.html#t%3AModSummary" >ModSummary</A > -> <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="Fingerprint.html#t%3AFingerprint" >Fingerprint</A > -> m a</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:hscGenBootOutput" ><A NAME="v%3AhscGenBootOutput" ></A ></A ><B >hscGenBootOutput</B > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="TcRnTypes.html#t%3ATcGblEnv" >TcGblEnv</A > -> <A HREF="HscTypes.html#t%3AModSummary" >ModSummary</A > -> <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="Fingerprint.html#t%3AFingerprint" >Fingerprint</A > -> m a</TD ><TD CLASS="rdoc" >Code generation for Boot modules. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:hscGenOutput" ><A NAME="v%3AhscGenOutput" ></A ></A ><B >hscGenOutput</B > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="HscTypes.html#t%3AModGuts" >ModGuts</A > -> <A HREF="HscTypes.html#t%3AModSummary" >ModSummary</A > -> <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="Fingerprint.html#t%3AFingerprint" >Fingerprint</A > -> m a</TD ><TD CLASS="rdoc" >Code generation for normal modules. </TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:hscOneShotCompiler" ><A NAME="v%3AhscOneShotCompiler" ></A ></A ><B >hscOneShotCompiler</B > :: <A HREF="HscMain.html#t%3AHsCompiler" >HsCompiler</A > OneShotResult</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:hscNothingCompiler" ><A NAME="v%3AhscNothingCompiler" ></A ></A ><B >hscNothingCompiler</B > :: <A HREF="HscMain.html#t%3AHsCompiler" >HsCompiler</A > NothingResult</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:hscInteractiveCompiler" ><A NAME="v%3AhscInteractiveCompiler" ></A ></A ><B >hscInteractiveCompiler</B > :: <A HREF="HscMain.html#t%3AHsCompiler" >HsCompiler</A > InteractiveResult</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:hscBatchCompiler" ><A NAME="v%3AhscBatchCompiler" ></A ></A ><B >hscBatchCompiler</B > :: <A HREF="HscMain.html#t%3AHsCompiler" >HsCompiler</A > BatchResult</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:hscCompileOneShot" ><A NAME="v%3AhscCompileOneShot" ></A ></A ><B >hscCompileOneShot</B > :: Compiler OneShotResult</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:hscCompileBatch" ><A NAME="v%3AhscCompileBatch" ></A ></A ><B >hscCompileBatch</B > :: Compiler (<A HREF="HscMain.html#t%3AHscStatus" >HscStatus</A >, <A HREF="HscTypes.html#t%3AModIface" >ModIface</A >, <A HREF="HscTypes.html#t%3AModDetails" >ModDetails</A >)</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:hscCompileNothing" ><A NAME="v%3AhscCompileNothing" ></A ></A ><B >hscCompileNothing</B > :: Compiler (<A HREF="HscMain.html#t%3AHscStatus" >HscStatus</A >, <A HREF="HscTypes.html#t%3AModIface" >ModIface</A >, <A HREF="HscTypes.html#t%3AModDetails" >ModDetails</A >)</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:hscCompileInteractive" ><A NAME="v%3AhscCompileInteractive" ></A ></A ><B >hscCompileInteractive</B > :: Compiler (<A HREF="HscMain.html#t%3AInteractiveStatus" >InteractiveStatus</A >, <A HREF="HscTypes.html#t%3AModIface" >ModIface</A >, <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:HscStatus'" ><A NAME="t%3AHscStatus%27" ></A ></A ><B >HscStatus'</B > a </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:HscNoRecomp" ><A NAME="v%3AHscNoRecomp" ></A ></A ><B >HscNoRecomp</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:HscRecomp" ><A NAME="v%3AHscRecomp" ></A ></A ><B >HscRecomp</B > <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A > a</TD ><TD CLASS="rdoc" ></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:InteractiveStatus" ><A NAME="t%3AInteractiveStatus" ></A ></A ><B >InteractiveStatus</B > = <A HREF="HscMain.html#t%3AHscStatus%27" >HscStatus'</A > (<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > (<A HREF="ByteCodeAsm.html#t%3ACompiledByteCode" >CompiledByteCode</A >, <A HREF="HscTypes.html#t%3AModBreaks" >ModBreaks</A >))</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:HscStatus" ><A NAME="t%3AHscStatus" ></A ></A ><B >HscStatus</B > = <A HREF="HscMain.html#t%3AHscStatus%27" >HscStatus'</A > <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:hscParse" ><A NAME="v%3AhscParse" ></A ></A ><B >hscParse</B > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="HscTypes.html#t%3AModSummary" >ModSummary</A > -> m (<A HREF="SrcLoc.html#t%3ALocated" >Located</A > (<A HREF="HsSyn.html#t%3AHsModule" >HsModule</A > <A HREF="RdrName.html#t%3ARdrName" >RdrName</A >))</TD ></TR ><TR ><TD CLASS="doc" >parse a file, returning the abstract syntax </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:hscTypecheck" ><A NAME="v%3AhscTypecheck" ></A ></A ><B >hscTypecheck</B > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="HscTypes.html#t%3AModSummary" >ModSummary</A > -> <A HREF="SrcLoc.html#t%3ALocated" >Located</A > (<A HREF="HsSyn.html#t%3AHsModule" >HsModule</A > <A HREF="RdrName.html#t%3ARdrName" >RdrName</A >) -> m <A HREF="TcRnTypes.html#t%3ATcGblEnv" >TcGblEnv</A ></TD ></TR ><TR ><TD CLASS="doc" >Rename and typecheck a module </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:hscTypecheckRename" ><A NAME="v%3AhscTypecheckRename" ></A ></A ><B >hscTypecheckRename</B > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="HscTypes.html#t%3AModSummary" >ModSummary</A > -> <A HREF="SrcLoc.html#t%3ALocated" >Located</A > (<A HREF="HsSyn.html#t%3AHsModule" >HsModule</A > <A HREF="RdrName.html#t%3ARdrName" >RdrName</A >) -> m (<A HREF="TcRnTypes.html#t%3ATcGblEnv" >TcGblEnv</A >, RenamedStuff)</TD ></TR ><TR ><TD CLASS="doc" >Rename and typecheck a module, additionally returning the renamed syntax </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:hscDesugar" ><A NAME="v%3AhscDesugar" ></A ></A ><B >hscDesugar</B > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="HscTypes.html#t%3AModSummary" >ModSummary</A > -> <A HREF="TcRnTypes.html#t%3ATcGblEnv" >TcGblEnv</A > -> m <A HREF="HscTypes.html#t%3AModGuts" >ModGuts</A ></TD ></TR ><TR ><TD CLASS="doc" >Convert a typechecked module to Core </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:makeSimpleIface" ><A NAME="v%3AmakeSimpleIface" ></A ></A ><B >makeSimpleIface</B > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="HscTypes.html#t%3AModIface" >ModIface</A > -> <A HREF="TcRnTypes.html#t%3ATcGblEnv" >TcGblEnv</A > -> <A HREF="HscTypes.html#t%3AModDetails" >ModDetails</A > -> m (<A HREF="HscTypes.html#t%3AModIface" >ModIface</A >, <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A >)</TD ></TR ><TR ><TD CLASS="doc" >Make a <TT ><A HREF="HscTypes.html#t%3AModIface" >ModIface</A ></TT > from the results of typechecking. Used when not optimising, and the interface doesn't need to contain any unfoldings or other cross-module optimisation info. ToDo: the old interface is only needed to get the version numbers, we should use fingerprint versions instead. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:makeSimpleDetails" ><A NAME="v%3AmakeSimpleDetails" ></A ></A ><B >makeSimpleDetails</B > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="TcRnTypes.html#t%3ATcGblEnv" >TcGblEnv</A > -> m <A HREF="HscTypes.html#t%3AModDetails" >ModDetails</A ></TD ></TR ><TR ><TD CLASS="doc" >Make a <TT ><A HREF="HscTypes.html#t%3AModDetails" >ModDetails</A ></TT > from the results of typechecking. Used when typechecking only, as opposed to full compilation. </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 >