<!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.10.4: 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="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="DynFlags.html#t%3ADynFlags" >DynFlags</A > -> <A HREF="../base/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/System-IO.html#t%3AFilePath" >FilePath</A > -> m <A HREF="../ghc-prim/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/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%3AModGuts" >ModGuts</A > -> Comp <A HREF="HscTypes.html#t%3AModGuts" >ModGuts</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AevalComp" >evalComp</A > :: Comp a -> <A HREF="HscMain.html#t%3ACompState" >CompState</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > (<A HREF="ErrUtils.html#t%3AMessages" >Messages</A >, a)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AhscNormalIface" >hscNormalIface</A > :: <A HREF="HscTypes.html#t%3AModGuts" >ModGuts</A > -> Comp (<A HREF="HscTypes.html#t%3AModIface" >ModIface</A >, <A HREF="../ghc-prim/GHC-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%3AModIface" >ModIface</A >, <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A >, <A HREF="HscTypes.html#t%3AModDetails" >ModDetails</A >, a) -> Comp (<A HREF="HscTypes.html#t%3AModIface" >ModIface</A >, <A HREF="HscTypes.html#t%3AModDetails" >ModDetails</A >, a)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AhscOneShot" >hscOneShot</A > :: (<A HREF="HscTypes.html#t%3AModIface" >ModIface</A >, <A HREF="HscTypes.html#t%3AModDetails" >ModDetails</A >, <A HREF="HscTypes.html#t%3ACgGuts" >CgGuts</A >) -> Comp (<A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="HscMain.html#t%3AHscStatus" >HscStatus</A >)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ACompState" >CompState</A > = <A HREF="#v%3ACompState" >CompState</A > {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="recfield" ><A HREF="#v%3AcompHscEnv" >compHscEnv</A > :: <A HREF="HscTypes.html#t%3AHscEnv" >HscEnv</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3AcompModSummary" >compModSummary</A > :: <A HREF="HscTypes.html#t%3AModSummary" >ModSummary</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3AcompOldIface" >compOldIface</A > :: <A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="HscTypes.html#t%3AModIface" >ModIface</A ></TD ></TR ></TABLE >}</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/Data-Char.html#t%3AString" >String</A > -> m (<A HREF="../base/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/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/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/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" ><A HREF="#v%3AhscCompileOneShot" >hscCompileOneShot</A > :: Compiler <A HREF="HscMain.html#t%3AHscStatus" >HscStatus</A ></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" >HscStatus</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="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</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%3AInteractiveStatus" >InteractiveStatus</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3AInteractiveNoRecomp" >InteractiveNoRecomp</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AInteractiveRecomp" >InteractiveRecomp</A > <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A > <A HREF="ByteCodeAsm.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" ><A HREF="#v%3AparseFile" >parseFile</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 > -> 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%3AtypecheckModule%27" >typecheckModule'</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="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%3AtypecheckRenameModule" >typecheckRenameModule</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="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%3AdeSugarModule" >deSugarModule</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="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%3AHscEnv" >HscEnv</A > -> <A HREF="../base/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 > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > (<A HREF="HscTypes.html#t%3AModIface" >ModIface</A >, <A HREF="../ghc-prim/GHC-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%3AHscEnv" >HscEnv</A > -> <A HREF="TcRnTypes.html#t%3ATcGblEnv" >TcGblEnv</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="HscTypes.html#t%3AModDetails" >ModDetails</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3ACompiler%27" >Compiler'</A > m result = <A HREF="HscTypes.html#t%3AHscEnv" >HscEnv</A > -> <A HREF="HscTypes.html#t%3AModSummary" >ModSummary</A > -> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A > -> <A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="HscTypes.html#t%3AModIface" >ModIface</A > -> <A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > (<A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A >, <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A >) -> m result</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AbackendCompilers" >backendCompilers</A > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="TcRnTypes.html#t%3ATcGblEnv" >TcGblEnv</A > -> (<A HREF="HscMain.html#t%3ACompiler%27" >Compiler'</A > m (<A HREF="HscMain.html#t%3AHscStatus" >HscStatus</A >, <A HREF="HscTypes.html#t%3AModIface" >ModIface</A >, <A HREF="HscTypes.html#t%3AModDetails" >ModDetails</A >), <A HREF="HscMain.html#t%3ACompiler%27" >Compiler'</A > m (<A HREF="HscMain.html#t%3AInteractiveStatus" >InteractiveStatus</A >, <A HREF="HscTypes.html#t%3AModIface" >ModIface</A >, <A HREF="HscTypes.html#t%3AModDetails" >ModDetails</A >), <A HREF="HscMain.html#t%3ACompiler%27" >Compiler'</A > m (<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 ></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="DynFlags.html#t%3ADynFlags" >DynFlags</A > -> <A HREF="../base/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/System-IO.html#t%3AFilePath" >FilePath</A > -> m <A HREF="../ghc-prim/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/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%3AModGuts" >ModGuts</A > -> Comp <A HREF="HscTypes.html#t%3AModGuts" >ModGuts</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:evalComp" ><A NAME="v%3AevalComp" ></A ></A ><B >evalComp</B > :: Comp a -> <A HREF="HscMain.html#t%3ACompState" >CompState</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > (<A HREF="ErrUtils.html#t%3AMessages" >Messages</A >, 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%3AModGuts" >ModGuts</A > -> Comp (<A HREF="HscTypes.html#t%3AModIface" >ModIface</A >, <A HREF="../ghc-prim/GHC-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%3AModIface" >ModIface</A >, <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A >, <A HREF="HscTypes.html#t%3AModDetails" >ModDetails</A >, a) -> Comp (<A HREF="HscTypes.html#t%3AModIface" >ModIface</A >, <A HREF="HscTypes.html#t%3AModDetails" >ModDetails</A >, a)</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:hscOneShot" ><A NAME="v%3AhscOneShot" ></A ></A ><B >hscOneShot</B > :: (<A HREF="HscTypes.html#t%3AModIface" >ModIface</A >, <A HREF="HscTypes.html#t%3AModDetails" >ModDetails</A >, <A HREF="HscTypes.html#t%3ACgGuts" >CgGuts</A >) -> Comp (<A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="HscMain.html#t%3AHscStatus" >HscStatus</A >)</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:CompState" ><A NAME="t%3ACompState" ></A ></A ><B >CompState</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="5" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:CompState" ><A NAME="v%3ACompState" ></A ></A ><B >CompState</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:compHscEnv" ><A NAME="v%3AcompHscEnv" ></A ></A ><B >compHscEnv</B > :: <A HREF="HscTypes.html#t%3AHscEnv" >HscEnv</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:compModSummary" ><A NAME="v%3AcompModSummary" ></A ></A ><B >compModSummary</B > :: <A HREF="HscTypes.html#t%3AModSummary" >ModSummary</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:compOldIface" ><A NAME="v%3AcompOldIface" ></A ></A ><B >compOldIface</B > :: <A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="HscTypes.html#t%3AModIface" >ModIface</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: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/Data-Char.html#t%3AString" >String</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >-> m (<A HREF="../base/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/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/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/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/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" ><A NAME="v:hscCompileOneShot" ><A NAME="v%3AhscCompileOneShot" ></A ></A ><B >hscCompileOneShot</B > :: Compiler <A HREF="HscMain.html#t%3AHscStatus" >HscStatus</A ></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" ></A ></A ><B >HscStatus</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: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="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</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" >data</SPAN > <A NAME="t:InteractiveStatus" ><A NAME="t%3AInteractiveStatus" ></A ></A ><B >InteractiveStatus</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:InteractiveNoRecomp" ><A NAME="v%3AInteractiveNoRecomp" ></A ></A ><B >InteractiveNoRecomp</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:InteractiveRecomp" ><A NAME="v%3AInteractiveRecomp" ></A ></A ><B >InteractiveRecomp</B > <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A > <A HREF="ByteCodeAsm.html#t%3ACompiledByteCode" >CompiledByteCode</A > <A HREF="HscTypes.html#t%3AModBreaks" >ModBreaks</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:parseFile" ><A NAME="v%3AparseFile" ></A ></A ><B >parseFile</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 > -> 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:typecheckModule'" ><A NAME="v%3AtypecheckModule%27" ></A ></A ><B >typecheckModule'</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="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:typecheckRenameModule" ><A NAME="v%3AtypecheckRenameModule" ></A ></A ><B >typecheckRenameModule</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="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:deSugarModule" ><A NAME="v%3AdeSugarModule" ></A ></A ><B >deSugarModule</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="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%3AHscEnv" >HscEnv</A > -> <A HREF="../base/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 > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > (<A HREF="HscTypes.html#t%3AModIface" >ModIface</A >, <A HREF="../ghc-prim/GHC-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%3AHscEnv" >HscEnv</A > -> <A HREF="TcRnTypes.html#t%3ATcGblEnv" >TcGblEnv</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <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="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:Compiler'" ><A NAME="t%3ACompiler%27" ></A ></A ><B >Compiler'</B > m result = <A HREF="HscTypes.html#t%3AHscEnv" >HscEnv</A > -> <A HREF="HscTypes.html#t%3AModSummary" >ModSummary</A > -> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A > -> <A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="HscTypes.html#t%3AModIface" >ModIface</A > -> <A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > (<A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A >, <A HREF="../ghc-prim/GHC-Types.html#t%3AInt" >Int</A >) -> m result</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:backendCompilers" ><A NAME="v%3AbackendCompilers" ></A ></A ><B >backendCompilers</B > :: <A HREF="HscTypes.html#t%3AGhcMonad" >GhcMonad</A > m => <A HREF="TcRnTypes.html#t%3ATcGblEnv" >TcGblEnv</A > -> (<A HREF="HscMain.html#t%3ACompiler%27" >Compiler'</A > m (<A HREF="HscMain.html#t%3AHscStatus" >HscStatus</A >, <A HREF="HscTypes.html#t%3AModIface" >ModIface</A >, <A HREF="HscTypes.html#t%3AModDetails" >ModDetails</A >), <A HREF="HscMain.html#t%3ACompiler%27" >Compiler'</A > m (<A HREF="HscMain.html#t%3AInteractiveStatus" >InteractiveStatus</A >, <A HREF="HscTypes.html#t%3AModIface" >ModIface</A >, <A HREF="HscTypes.html#t%3AModDetails" >ModDetails</A >), <A HREF="HscMain.html#t%3ACompiler%27" >Compiler'</A > m (<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="botbar" >Produced by <A HREF="http://www.haskell.org/haddock/" >Haddock</A > version 2.4.2</TD ></TR ></TABLE ></BODY ></HTML >