Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 1f2b142b9d2ef4849a6f5316fa1c5b12 > files > 2025

ghc-6.10.4-1mdv2010.0.i586.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
>Rules</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_Rules.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"
>Rules</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"
>RuleBase
</A
></DT
><DD
><DL
><DT
><A HREF="#2"
>Constructing 
</A
></DT
><DT
><A HREF="#3"
>Checking rule applications
</A
></DT
><DT
><A HREF="#4"
>Manipulating <TT
><A HREF="IdInfo.html#t%3ASpecInfo"
>SpecInfo</A
></TT
> rules
</A
></DT
></DL
></DD
><DT
><A HREF="#5"
>Misc. CoreRule helpers
</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"
>Functions for collecting together and applying rewrite rules to a module.
 The <TT
><A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
></TT
> datatype itself is declared elsewhere.
</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"
>type</SPAN
> <A HREF="#t%3ARuleBase"
>RuleBase</A
> = <A HREF="NameEnv.html#t%3ANameEnv"
>NameEnv</A
> [<A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
>emptyRuleBase</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkRuleBase"
>mkRuleBase</A
> :: [<A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
>] -&gt; <A HREF="Rules.html#t%3ARuleBase"
>RuleBase</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AextendRuleBaseList"
>extendRuleBaseList</A
> :: <A HREF="Rules.html#t%3ARuleBase"
>RuleBase</A
> -&gt; [<A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
>] -&gt; <A HREF="Rules.html#t%3ARuleBase"
>RuleBase</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AunionRuleBase"
>unionRuleBase</A
> :: <A HREF="Rules.html#t%3ARuleBase"
>RuleBase</A
> -&gt; <A HREF="Rules.html#t%3ARuleBase"
>RuleBase</A
> -&gt; <A HREF="Rules.html#t%3ARuleBase"
>RuleBase</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ApprRuleBase"
>pprRuleBase</A
> :: <A HREF="Rules.html#t%3ARuleBase"
>RuleBase</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%3AruleCheckProgram"
>ruleCheckProgram</A
> :: <A HREF="BasicTypes.html#t%3ACompilerPhase"
>CompilerPhase</A
> -&gt; <A HREF="../base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="Rules.html#t%3ARuleBase"
>RuleBase</A
> -&gt; [<A HREF="CoreSyn.html#t%3ACoreBind"
>CoreBind</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%3AmkSpecInfo"
>mkSpecInfo</A
> :: [<A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
>] -&gt; <A HREF="IdInfo.html#t%3ASpecInfo"
>SpecInfo</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AextendSpecInfo"
>extendSpecInfo</A
> :: <A HREF="IdInfo.html#t%3ASpecInfo"
>SpecInfo</A
> -&gt; [<A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
>] -&gt; <A HREF="IdInfo.html#t%3ASpecInfo"
>SpecInfo</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AaddSpecInfo"
>addSpecInfo</A
> :: <A HREF="IdInfo.html#t%3ASpecInfo"
>SpecInfo</A
> -&gt; <A HREF="IdInfo.html#t%3ASpecInfo"
>SpecInfo</A
> -&gt; <A HREF="IdInfo.html#t%3ASpecInfo"
>SpecInfo</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AaddIdSpecialisations"
>addIdSpecialisations</A
> :: <A HREF="Var.html#t%3AId"
>Id</A
> -&gt; [<A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</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%3ArulesOfBinds"
>rulesOfBinds</A
> :: [<A HREF="CoreSyn.html#t%3ACoreBind"
>CoreBind</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%3AgetRules"
>getRules</A
> :: <A HREF="Rules.html#t%3ARuleBase"
>RuleBase</A
> -&gt; <A HREF="Var.html#t%3AId"
>Id</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%3ApprRulesForUser"
>pprRulesForUser</A
> :: [<A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</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%3AlookupRule"
>lookupRule</A
> :: (<A HREF="BasicTypes.html#t%3AActivation"
>Activation</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
>) -&gt; <A HREF="VarEnv.html#t%3AInScopeSet"
>InScopeSet</A
> -&gt; <A HREF="Var.html#t%3AId"
>Id</A
> -&gt; [<A HREF="CoreSyn.html#t%3ACoreExpr"
>CoreExpr</A
>] -&gt; [<A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
>] -&gt; <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (<A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
>, <A HREF="CoreSyn.html#t%3ACoreExpr"
>CoreExpr</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkLocalRule"
>mkLocalRule</A
> :: <A HREF="BasicTypes.html#t%3ARuleName"
>RuleName</A
> -&gt; <A HREF="BasicTypes.html#t%3AActivation"
>Activation</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; [<A HREF="CoreSyn.html#t%3ACoreBndr"
>CoreBndr</A
>] -&gt; [<A HREF="CoreSyn.html#t%3ACoreExpr"
>CoreExpr</A
>] -&gt; <A HREF="CoreSyn.html#t%3ACoreExpr"
>CoreExpr</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%3AroughTopNames"
>roughTopNames</A
> :: [<A HREF="CoreSyn.html#t%3ACoreExpr"
>CoreExpr</A
>] -&gt; [<A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Name.html#t%3AName"
>Name</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"
>RuleBase
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:RuleBase"
><A NAME="t%3ARuleBase"
></A
></A
><B
>RuleBase</B
> = <A HREF="NameEnv.html#t%3ANameEnv"
>NameEnv</A
> [<A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
>]</TD
></TR
><TR
><TD CLASS="doc"
>Gathers a collection of <TT
><A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
></TT
>s. Maps (the name of) an <TT
><A HREF="Var.html#t%3AId"
>Id</A
></TT
> to its rules
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="2"
><A NAME="2"
>Constructing 
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
>emptyRuleBase</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkRuleBase"
><A NAME="v%3AmkRuleBase"
></A
></A
><B
>mkRuleBase</B
> :: [<A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
>] -&gt; <A HREF="Rules.html#t%3ARuleBase"
>RuleBase</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:extendRuleBaseList"
><A NAME="v%3AextendRuleBaseList"
></A
></A
><B
>extendRuleBaseList</B
> :: <A HREF="Rules.html#t%3ARuleBase"
>RuleBase</A
> -&gt; [<A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
>] -&gt; <A HREF="Rules.html#t%3ARuleBase"
>RuleBase</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:unionRuleBase"
><A NAME="v%3AunionRuleBase"
></A
></A
><B
>unionRuleBase</B
> :: <A HREF="Rules.html#t%3ARuleBase"
>RuleBase</A
> -&gt; <A HREF="Rules.html#t%3ARuleBase"
>RuleBase</A
> -&gt; <A HREF="Rules.html#t%3ARuleBase"
>RuleBase</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:pprRuleBase"
><A NAME="v%3ApprRuleBase"
></A
></A
><B
>pprRuleBase</B
> :: <A HREF="Rules.html#t%3ARuleBase"
>RuleBase</A
> -&gt; <A HREF="Outputable.html#t%3ASDoc"
>SDoc</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="3"
><A NAME="3"
>Checking rule applications
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:ruleCheckProgram"
><A NAME="v%3AruleCheckProgram"
></A
></A
><B
>ruleCheckProgram</B
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="BasicTypes.html#t%3ACompilerPhase"
>CompilerPhase</A
></TD
><TD CLASS="rdoc"
>Phase to check in
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="../base/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>Rule pattern
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Rules.html#t%3ARuleBase"
>RuleBase</A
></TD
><TD CLASS="rdoc"
>Database of rules
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; [<A HREF="CoreSyn.html#t%3ACoreBind"
>CoreBind</A
>]</TD
><TD CLASS="rdoc"
>Bindings to check in
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Outputable.html#t%3ASDoc"
>SDoc</A
></TD
><TD CLASS="rdoc"
>Resulting check message
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>Report partial matches for rules beginning with the specified
 string for the purposes of error reporting
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="4"
><A NAME="4"
>Manipulating <TT
><A HREF="IdInfo.html#t%3ASpecInfo"
>SpecInfo</A
></TT
> rules
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkSpecInfo"
><A NAME="v%3AmkSpecInfo"
></A
></A
><B
>mkSpecInfo</B
> :: [<A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
>] -&gt; <A HREF="IdInfo.html#t%3ASpecInfo"
>SpecInfo</A
></TD
></TR
><TR
><TD CLASS="doc"
>Make a <TT
><A HREF="IdInfo.html#t%3ASpecInfo"
>SpecInfo</A
></TT
> containing a number of <TT
><A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
></TT
>s, suitable
 for putting into an IdInfo
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:extendSpecInfo"
><A NAME="v%3AextendSpecInfo"
></A
></A
><B
>extendSpecInfo</B
> :: <A HREF="IdInfo.html#t%3ASpecInfo"
>SpecInfo</A
> -&gt; [<A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
>] -&gt; <A HREF="IdInfo.html#t%3ASpecInfo"
>SpecInfo</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:addSpecInfo"
><A NAME="v%3AaddSpecInfo"
></A
></A
><B
>addSpecInfo</B
> :: <A HREF="IdInfo.html#t%3ASpecInfo"
>SpecInfo</A
> -&gt; <A HREF="IdInfo.html#t%3ASpecInfo"
>SpecInfo</A
> -&gt; <A HREF="IdInfo.html#t%3ASpecInfo"
>SpecInfo</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:addIdSpecialisations"
><A NAME="v%3AaddIdSpecialisations"
></A
></A
><B
>addIdSpecialisations</B
> :: <A HREF="Var.html#t%3AId"
>Id</A
> -&gt; [<A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
>] -&gt; <A HREF="Var.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="5"
><A NAME="5"
>Misc. CoreRule helpers
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:rulesOfBinds"
><A NAME="v%3ArulesOfBinds"
></A
></A
><B
>rulesOfBinds</B
> :: [<A HREF="CoreSyn.html#t%3ACoreBind"
>CoreBind</A
>] -&gt; [<A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
>]</TD
></TR
><TR
><TD CLASS="doc"
>Gather all the rules for locally bound identifiers from the supplied bindings
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:getRules"
><A NAME="v%3AgetRules"
></A
></A
><B
>getRules</B
> :: <A HREF="Rules.html#t%3ARuleBase"
>RuleBase</A
> -&gt; <A HREF="Var.html#t%3AId"
>Id</A
> -&gt; [<A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
>]</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:pprRulesForUser"
><A NAME="v%3ApprRulesForUser"
></A
></A
><B
>pprRulesForUser</B
> :: [<A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</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:lookupRule"
><A NAME="v%3AlookupRule"
></A
></A
><B
>lookupRule</B
> :: (<A HREF="BasicTypes.html#t%3AActivation"
>Activation</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
>) -&gt; <A HREF="VarEnv.html#t%3AInScopeSet"
>InScopeSet</A
> -&gt; <A HREF="Var.html#t%3AId"
>Id</A
> -&gt; [<A HREF="CoreSyn.html#t%3ACoreExpr"
>CoreExpr</A
>] -&gt; [<A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
>] -&gt; <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (<A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
>, <A HREF="CoreSyn.html#t%3ACoreExpr"
>CoreExpr</A
>)</TD
></TR
><TR
><TD CLASS="doc"
>The main rule matching function. Attempts to apply all (active)
 supplied rules to this instance of an application in a given
 context, returning the rule applied and the resulting expression if
 successful.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkLocalRule"
><A NAME="v%3AmkLocalRule"
></A
></A
><B
>mkLocalRule</B
> :: <A HREF="BasicTypes.html#t%3ARuleName"
>RuleName</A
> -&gt; <A HREF="BasicTypes.html#t%3AActivation"
>Activation</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; [<A HREF="CoreSyn.html#t%3ACoreBndr"
>CoreBndr</A
>] -&gt; [<A HREF="CoreSyn.html#t%3ACoreExpr"
>CoreExpr</A
>] -&gt; <A HREF="CoreSyn.html#t%3ACoreExpr"
>CoreExpr</A
> -&gt; <A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
></TD
></TR
><TR
><TD CLASS="doc"
>Used to make <TT
><A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
></TT
> for an <TT
><A HREF="Var.html#t%3AId"
>Id</A
></TT
> defined in the module being 
 compiled. See also <TT
><A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:roughTopNames"
><A NAME="v%3AroughTopNames"
></A
></A
><B
>roughTopNames</B
> :: [<A HREF="CoreSyn.html#t%3ACoreExpr"
>CoreExpr</A
>] -&gt; [<A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Name.html#t%3AName"
>Name</A
>]</TD
></TR
><TR
><TD CLASS="doc"
><P
>Find the &quot;top&quot; free names of several expressions. 
 Such names are either:
</P
><P
>1. The function finally being applied to in an application chain
    (if that name is a GlobalId: see <A HREF="Var.html#globalvslocal"
>Var</A
>), or
</P
><P
>2. The TyCon if the expression is a <TT
><A HREF="Type.html#t%3AType"
>Type</A
></TT
>
</P
><P
>This is used for the fast-match-check for rules; 
	if the top names don't match, the rest can't
</P
></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
>