Sophie

Sophie

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

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
>RdrName</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_RdrName.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"
>RdrName</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"
>The main type
</A
></DT
><DD
><DL
><DT
><A HREF="#2"
>Construction
</A
></DT
><DT
><A HREF="#3"
>Destruction
</A
></DT
><DT
><A HREF="#4"
>Printing
</A
></DT
></DL
></DD
><DT
><A HREF="#5"
>Local mapping of <TT
><A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TT
> to <TT
><A HREF="Name.html#t%3AName"
>Name</A
></TT
>
</A
></DT
><DT
><A HREF="#6"
>Global mapping of <TT
><A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TT
> to <TT
><A HREF="RdrName.html#t%3AGlobalRdrElt"
>GlobalRdrElt</A
></TT
>s
</A
></DT
><DD
><DL
><DT
><A HREF="#7"
>Global <TT
><A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TT
> mapping elements: <TT
><A HREF="RdrName.html#t%3AGlobalRdrElt"
>GlobalRdrElt</A
></TT
>, <TT
><A HREF="RdrName.html#t%3AProvenance"
>Provenance</A
></TT
>, <TT
><A HREF="RdrName.html#t%3AImportSpec"
>ImportSpec</A
></TT
>
</A
></DT
></DL
></DD
></DL
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Description</TD
></TR
><TR
><TD CLASS="doc"
><P
><A NAME="name_types"
><A NAME="name_types"
></A
></A
>
 GHC uses several kinds of name internally:
</P
><UL
><LI
> OccName.OccName: see <A HREF="OccName.html#name_types"
>OccName</A
>
</LI
><LI
> <TT
><A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TT
> is the type of names that come directly from the parser. They
   have not yet had their scoping and binding resolved by the renamer and can be
   thought of to a first approximation as an OccName.OccName with an optional module
   qualifier
</LI
><LI
> <TT
><A HREF="Name.html#t%3AName"
>Name</A
></TT
>: see <A HREF="Name.html#name_types"
>Name</A
>
</LI
><LI
> Id.Id: see <A HREF="Id.html#name_types"
>Id</A
>
</LI
><LI
> Var.Var: see <A HREF="Var.html#name_types"
>Var</A
>
</LI
></UL
></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"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ARdrName"
>RdrName</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AUnqual"
>Unqual</A
> <A HREF="OccName.html#t%3AOccName"
>OccName</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AQual"
>Qual</A
> <A HREF="Module.html#t%3AModuleName"
>ModuleName</A
> <A HREF="OccName.html#t%3AOccName"
>OccName</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AOrig"
>Orig</A
> <A HREF="Module.html#t%3AModule"
>Module</A
> <A HREF="OccName.html#t%3AOccName"
>OccName</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AExact"
>Exact</A
> <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkRdrUnqual"
>mkRdrUnqual</A
> :: <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkRdrQual"
>mkRdrQual</A
> :: <A HREF="Module.html#t%3AModuleName"
>ModuleName</A
> -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkUnqual"
>mkUnqual</A
> :: <A HREF="OccName.html#t%3ANameSpace"
>NameSpace</A
> -&gt; <A HREF="FastString.html#t%3AFastString"
>FastString</A
> -&gt; <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkVarUnqual"
>mkVarUnqual</A
> :: <A HREF="FastString.html#t%3AFastString"
>FastString</A
> -&gt; <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkQual"
>mkQual</A
> :: <A HREF="OccName.html#t%3ANameSpace"
>NameSpace</A
> -&gt; (<A HREF="FastString.html#t%3AFastString"
>FastString</A
>, <A HREF="FastString.html#t%3AFastString"
>FastString</A
>) -&gt; <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkOrig"
>mkOrig</A
> :: <A HREF="Module.html#t%3AModule"
>Module</A
> -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AnameRdrName"
>nameRdrName</A
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AgetRdrName"
>getRdrName</A
> :: <A HREF="Name.html#t%3ANamedThing"
>NamedThing</A
> thing =&gt; thing -&gt; <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkDerivedRdrName"
>mkDerivedRdrName</A
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; (<A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
>) -&gt; <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ArdrNameOcc"
>rdrNameOcc</A
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ArdrNameSpace"
>rdrNameSpace</A
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <A HREF="OccName.html#t%3ANameSpace"
>NameSpace</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsetRdrNameSpace"
>setRdrNameSpace</A
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <A HREF="OccName.html#t%3ANameSpace"
>NameSpace</A
> -&gt; <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisRdrDataCon"
>isRdrDataCon</A
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <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%3AisRdrTyVar"
>isRdrTyVar</A
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <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%3AisRdrTc"
>isRdrTc</A
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <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%3AisQual"
>isQual</A
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <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%3AisQual_maybe"
>isQual_maybe</A
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (<A HREF="Module.html#t%3AModuleName"
>ModuleName</A
>, <A HREF="OccName.html#t%3AOccName"
>OccName</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisUnqual"
>isUnqual</A
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <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%3AisOrig"
>isOrig</A
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <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%3AisOrig_maybe"
>isOrig_maybe</A
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (<A HREF="Module.html#t%3AModule"
>Module</A
>, <A HREF="OccName.html#t%3AOccName"
>OccName</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisExact"
>isExact</A
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <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%3AisExact_maybe"
>isExact_maybe</A
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</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="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisSrcRdrName"
>isSrcRdrName</A
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <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%3AshowRdrName"
>showRdrName</A
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <A HREF="../base/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%3ALocalRdrEnv"
>LocalRdrEnv</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"
><A HREF="#v%3AemptyLocalRdrEnv"
>emptyLocalRdrEnv</A
> :: <A HREF="RdrName.html#t%3ALocalRdrEnv"
>LocalRdrEnv</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AextendLocalRdrEnv"
>extendLocalRdrEnv</A
> :: <A HREF="RdrName.html#t%3ALocalRdrEnv"
>LocalRdrEnv</A
> -&gt; [<A HREF="Name.html#t%3AName"
>Name</A
>] -&gt; <A HREF="RdrName.html#t%3ALocalRdrEnv"
>LocalRdrEnv</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AlookupLocalRdrEnv"
>lookupLocalRdrEnv</A
> :: <A HREF="RdrName.html#t%3ALocalRdrEnv"
>LocalRdrEnv</A
> -&gt; <A HREF="RdrName.html#t%3ARdrName"
>RdrName</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="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AlookupLocalRdrOcc"
>lookupLocalRdrOcc</A
> :: <A HREF="RdrName.html#t%3ALocalRdrEnv"
>LocalRdrEnv</A
> -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</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="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AelemLocalRdrEnv"
>elemLocalRdrEnv</A
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <A HREF="RdrName.html#t%3ALocalRdrEnv"
>LocalRdrEnv</A
> -&gt; <A HREF="../ghc-prim/GHC-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%3AGlobalRdrEnv"
>GlobalRdrEnv</A
> = <A HREF="OccName.html#t%3AOccEnv"
>OccEnv</A
> [<A HREF="RdrName.html#t%3AGlobalRdrElt"
>GlobalRdrElt</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AemptyGlobalRdrEnv"
>emptyGlobalRdrEnv</A
> :: <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkGlobalRdrEnv"
>mkGlobalRdrEnv</A
> :: [<A HREF="RdrName.html#t%3AGlobalRdrElt"
>GlobalRdrElt</A
>] -&gt; <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AplusGlobalRdrEnv"
>plusGlobalRdrEnv</A
> :: <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
> -&gt; <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
> -&gt; <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AlookupGlobalRdrEnv"
>lookupGlobalRdrEnv</A
> :: <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
> -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; [<A HREF="RdrName.html#t%3AGlobalRdrElt"
>GlobalRdrElt</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AextendGlobalRdrEnv"
>extendGlobalRdrEnv</A
> :: <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
> -&gt; <A HREF="RdrName.html#t%3AGlobalRdrElt"
>GlobalRdrElt</A
> -&gt; <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ApprGlobalRdrEnv"
>pprGlobalRdrEnv</A
> :: <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</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%3AglobalRdrEnvElts"
>globalRdrEnvElts</A
> :: <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
> -&gt; [<A HREF="RdrName.html#t%3AGlobalRdrElt"
>GlobalRdrElt</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AlookupGRE_RdrName"
>lookupGRE_RdrName</A
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
> -&gt; [<A HREF="RdrName.html#t%3AGlobalRdrElt"
>GlobalRdrElt</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AlookupGRE_Name"
>lookupGRE_Name</A
> :: <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; [<A HREF="RdrName.html#t%3AGlobalRdrElt"
>GlobalRdrElt</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AgetGRE_NameQualifier_maybes"
>getGRE_NameQualifier_maybes</A
> :: <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; [<A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> [<A HREF="Module.html#t%3AModuleName"
>ModuleName</A
>]]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AhideSomeUnquals"
>hideSomeUnquals</A
> :: <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
> -&gt; [<A HREF="OccName.html#t%3AOccName"
>OccName</A
>] -&gt; <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AfindLocalDupsRdrEnv"
>findLocalDupsRdrEnv</A
> :: <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
> -&gt; [<A HREF="OccName.html#t%3AOccName"
>OccName</A
>] -&gt; (<A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
>, [[<A HREF="Name.html#t%3AName"
>Name</A
>]])</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AGlobalRdrElt"
>GlobalRdrElt</A
>  = <A HREF="#v%3AGRE"
>GRE</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3Agre_name"
>gre_name</A
> :: <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Agre_par"
>gre_par</A
> :: <A HREF="RdrName.html#t%3AParent"
>Parent</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Agre_prov"
>gre_prov</A
> :: <A HREF="RdrName.html#t%3AProvenance"
>Provenance</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisLocalGRE"
>isLocalGRE</A
> :: <A HREF="RdrName.html#t%3AGlobalRdrElt"
>GlobalRdrElt</A
> -&gt; <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%3AunQualOK"
>unQualOK</A
> :: <A HREF="RdrName.html#t%3AGlobalRdrElt"
>GlobalRdrElt</A
> -&gt; <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%3AqualSpecOK"
>qualSpecOK</A
> :: <A HREF="Module.html#t%3AModuleName"
>ModuleName</A
> -&gt; <A HREF="RdrName.html#t%3AImportSpec"
>ImportSpec</A
> -&gt; <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%3AunQualSpecOK"
>unQualSpecOK</A
> :: <A HREF="RdrName.html#t%3AImportSpec"
>ImportSpec</A
> -&gt; <A HREF="../ghc-prim/GHC-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%3AProvenance"
>Provenance</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3ALocalDef"
>LocalDef</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AImported"
>Imported</A
> [<A HREF="RdrName.html#t%3AImportSpec"
>ImportSpec</A
>]</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ApprNameProvenance"
>pprNameProvenance</A
> :: <A HREF="RdrName.html#t%3AGlobalRdrElt"
>GlobalRdrElt</A
> -&gt; <A HREF="Outputable.html#t%3ASDoc"
>SDoc</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%3AParent"
>Parent</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3ANoParent"
>NoParent</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AParentIs"
>ParentIs</A
> <A HREF="Name.html#t%3AName"
>Name</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%3AImportSpec"
>ImportSpec</A
>  = <A HREF="#v%3AImpSpec"
>ImpSpec</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ais_decl"
>is_decl</A
> :: <A HREF="RdrName.html#t%3AImpDeclSpec"
>ImpDeclSpec</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ais_item"
>is_item</A
> :: <A HREF="RdrName.html#t%3AImpItemSpec"
>ImpItemSpec</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AImpDeclSpec"
>ImpDeclSpec</A
>  = <A HREF="#v%3AImpDeclSpec"
>ImpDeclSpec</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ais_mod"
>is_mod</A
> :: <A HREF="Module.html#t%3AModuleName"
>ModuleName</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ais_as"
>is_as</A
> :: <A HREF="Module.html#t%3AModuleName"
>ModuleName</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ais_qual"
>is_qual</A
> :: <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ais_dloc"
>is_dloc</A
> :: <A HREF="SrcLoc.html#t%3ASrcSpan"
>SrcSpan</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%3AImpItemSpec"
>ImpItemSpec</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AImpAll"
>ImpAll</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AImpSome"
>ImpSome</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ais_explicit"
>is_explicit</A
> :: <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3Ais_iloc"
>is_iloc</A
> :: <A HREF="SrcLoc.html#t%3ASrcSpan"
>SrcSpan</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%3AimportSpecLoc"
>importSpecLoc</A
> :: <A HREF="RdrName.html#t%3AImportSpec"
>ImportSpec</A
> -&gt; <A HREF="SrcLoc.html#t%3ASrcSpan"
>SrcSpan</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AimportSpecModule"
>importSpecModule</A
> :: <A HREF="RdrName.html#t%3AImportSpec"
>ImportSpec</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%3AisExplicitItem"
>isExplicitItem</A
> :: <A HREF="RdrName.html#t%3AImpItemSpec"
>ImpItemSpec</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</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"
>The main type
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:RdrName"
><A NAME="t%3ARdrName"
></A
></A
><B
>RdrName</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Do not use the data constructors of RdrName directly: prefer the family
 of functions that creates them, such as <TT
><A HREF="RdrName.html#v%3AmkRdrUnqual"
>mkRdrUnqual</A
></TT
>
</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:Unqual"
><A NAME="v%3AUnqual"
></A
></A
><B
>Unqual</B
> <A HREF="OccName.html#t%3AOccName"
>OccName</A
></TD
><TD CLASS="rdoc"
>Used for ordinary, unqualified occurrences, e.g. <TT
>x</TT
>, <TT
>y</TT
> or <TT
>Foo</TT
>.
 Create such a <TT
><A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TT
> with <TT
><A HREF="RdrName.html#v%3AmkRdrUnqual"
>mkRdrUnqual</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:Qual"
><A NAME="v%3AQual"
></A
></A
><B
>Qual</B
> <A HREF="Module.html#t%3AModuleName"
>ModuleName</A
> <A HREF="OccName.html#t%3AOccName"
>OccName</A
></TD
><TD CLASS="rdoc"
>A qualified name written by the user in 
 <EM
>source</EM
> code.  The module isn't necessarily 
 the module where the thing is defined; 
 just the one from which it is imported.
 Examples are <TT
>Bar.x</TT
>, <TT
>Bar.y</TT
> or <TT
>Bar.Foo</TT
>.
 Create such a <TT
><A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TT
> with <TT
><A HREF="RdrName.html#v%3AmkRdrQual"
>mkRdrQual</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:Orig"
><A NAME="v%3AOrig"
></A
></A
><B
>Orig</B
> <A HREF="Module.html#t%3AModule"
>Module</A
> <A HREF="OccName.html#t%3AOccName"
>OccName</A
></TD
><TD CLASS="rdoc"
>An original name; the module is the <EM
>defining</EM
> module.
 This is used when GHC generates code that will be fed
 into the renamer (e.g. from deriving clauses), but where
 we want to say &quot;Use Prelude.map dammit&quot;. One of these
 can be created with <TT
><A HREF="RdrName.html#v%3AmkOrig"
>mkOrig</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:Exact"
><A NAME="v%3AExact"
></A
></A
><B
>Exact</B
> <A HREF="Name.html#t%3AName"
>Name</A
></TD
><TD CLASS="rdoc"
><P
>We know exactly the <TT
><A HREF="Name.html#t%3AName"
>Name</A
></TT
>. This is used:
</P
><OL
><LI
> When the parser parses built-in syntax like <TT
>[]</TT
>
	and <TT
>(,)</TT
>, but wants a <TT
><A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TT
> from it
</LI
><LI
> By Template Haskell, when TH has generated a unique name
</LI
></OL
><P
>Such a <TT
><A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TT
> can be created by using <TT
><A HREF="RdrName.html#v%3AgetRdrName"
>getRdrName</A
></TT
> on a <TT
><A HREF="Name.html#t%3AName"
>Name</A
></TT
>
</P
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:RdrName')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:RdrName" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Ord.html#t%3AOrd"
>Ord</A
> <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Outputable.html#t%3AOutputableBndr"
>OutputableBndr</A
> <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="2"
><A NAME="2"
>Construction
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkRdrUnqual"
><A NAME="v%3AmkRdrUnqual"
></A
></A
><B
>mkRdrUnqual</B
> :: <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkRdrQual"
><A NAME="v%3AmkRdrQual"
></A
></A
><B
>mkRdrQual</B
> :: <A HREF="Module.html#t%3AModuleName"
>ModuleName</A
> -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkUnqual"
><A NAME="v%3AmkUnqual"
></A
></A
><B
>mkUnqual</B
> :: <A HREF="OccName.html#t%3ANameSpace"
>NameSpace</A
> -&gt; <A HREF="FastString.html#t%3AFastString"
>FastString</A
> -&gt; <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkVarUnqual"
><A NAME="v%3AmkVarUnqual"
></A
></A
><B
>mkVarUnqual</B
> :: <A HREF="FastString.html#t%3AFastString"
>FastString</A
> -&gt; <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkQual"
><A NAME="v%3AmkQual"
></A
></A
><B
>mkQual</B
> :: <A HREF="OccName.html#t%3ANameSpace"
>NameSpace</A
> -&gt; (<A HREF="FastString.html#t%3AFastString"
>FastString</A
>, <A HREF="FastString.html#t%3AFastString"
>FastString</A
>) -&gt; <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TD
></TR
><TR
><TD CLASS="doc"
>Make a qualified <TT
><A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TT
> in the given namespace and where the <TT
><A HREF="Module.html#t%3AModuleName"
>ModuleName</A
></TT
> and
 the <TT
><A HREF="OccName.html#t%3AOccName"
>OccName</A
></TT
> are taken from the first and second elements of the tuple respectively
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkOrig"
><A NAME="v%3AmkOrig"
></A
></A
><B
>mkOrig</B
> :: <A HREF="Module.html#t%3AModule"
>Module</A
> -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:nameRdrName"
><A NAME="v%3AnameRdrName"
></A
></A
><B
>nameRdrName</B
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:getRdrName"
><A NAME="v%3AgetRdrName"
></A
></A
><B
>getRdrName</B
> :: <A HREF="Name.html#t%3ANamedThing"
>NamedThing</A
> thing =&gt; thing -&gt; <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkDerivedRdrName"
><A NAME="v%3AmkDerivedRdrName"
></A
></A
><B
>mkDerivedRdrName</B
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; (<A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
>) -&gt; <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TD
></TR
><TR
><TD CLASS="doc"
>Produce an original <TT
><A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TT
> whose module that of a parent <TT
><A HREF="Name.html#t%3AName"
>Name</A
></TT
> but its <TT
><A HREF="OccName.html#t%3AOccName"
>OccName</A
></TT
>
 is derived from that of it's parent using the supplied function
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="3"
><A NAME="3"
>Destruction
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:rdrNameOcc"
><A NAME="v%3ArdrNameOcc"
></A
></A
><B
>rdrNameOcc</B
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:rdrNameSpace"
><A NAME="v%3ArdrNameSpace"
></A
></A
><B
>rdrNameSpace</B
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <A HREF="OccName.html#t%3ANameSpace"
>NameSpace</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:setRdrNameSpace"
><A NAME="v%3AsetRdrNameSpace"
></A
></A
><B
>setRdrNameSpace</B
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <A HREF="OccName.html#t%3ANameSpace"
>NameSpace</A
> -&gt; <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TD
></TR
><TR
><TD CLASS="doc"
><P
>This rather gruesome function is used mainly by the parser.
 When parsing:
</P
><PRE
> data T a = T | T1 Int
</PRE
><P
>we parse the data constructors as <EM
>types</EM
> because of parser ambiguities,
 so then we need to change the <EM
>type constr</EM
> to a <EM
>data constr</EM
>
</P
><P
>The exact-name case <EM
>can</EM
> occur when parsing:
</P
><PRE
> data [] a = [] | a : [a]
</PRE
><P
>For the exact-name case we return an original name.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isRdrDataCon"
><A NAME="v%3AisRdrDataCon"
></A
></A
><B
>isRdrDataCon</B
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isRdrTyVar"
><A NAME="v%3AisRdrTyVar"
></A
></A
><B
>isRdrTyVar</B
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isRdrTc"
><A NAME="v%3AisRdrTc"
></A
></A
><B
>isRdrTc</B
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isQual"
><A NAME="v%3AisQual"
></A
></A
><B
>isQual</B
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isQual_maybe"
><A NAME="v%3AisQual_maybe"
></A
></A
><B
>isQual_maybe</B
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (<A HREF="Module.html#t%3AModuleName"
>ModuleName</A
>, <A HREF="OccName.html#t%3AOccName"
>OccName</A
>)</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isUnqual"
><A NAME="v%3AisUnqual"
></A
></A
><B
>isUnqual</B
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isOrig"
><A NAME="v%3AisOrig"
></A
></A
><B
>isOrig</B
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isOrig_maybe"
><A NAME="v%3AisOrig_maybe"
></A
></A
><B
>isOrig_maybe</B
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (<A HREF="Module.html#t%3AModule"
>Module</A
>, <A HREF="OccName.html#t%3AOccName"
>OccName</A
>)</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isExact"
><A NAME="v%3AisExact"
></A
></A
><B
>isExact</B
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isExact_maybe"
><A NAME="v%3AisExact_maybe"
></A
></A
><B
>isExact_maybe</B
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</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="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isSrcRdrName"
><A NAME="v%3AisSrcRdrName"
></A
></A
><B
>isSrcRdrName</B
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="4"
><A NAME="4"
>Printing
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:showRdrName"
><A NAME="v%3AshowRdrName"
></A
></A
><B
>showRdrName</B
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <A HREF="../base/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="5"
><A NAME="5"
>Local mapping of <TT
><A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TT
> to <TT
><A HREF="Name.html#t%3AName"
>Name</A
></TT
>
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:LocalRdrEnv"
><A NAME="t%3ALocalRdrEnv"
></A
></A
><B
>LocalRdrEnv</B
> = <A HREF="OccName.html#t%3AOccEnv"
>OccEnv</A
> <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="doc"
>This environment is used to store local bindings (<TT
>let</TT
>, <TT
>where</TT
>, lambda, <TT
>case</TT
>).
 It is keyed by OccName, because we never use it for qualified names
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:emptyLocalRdrEnv"
><A NAME="v%3AemptyLocalRdrEnv"
></A
></A
><B
>emptyLocalRdrEnv</B
> :: <A HREF="RdrName.html#t%3ALocalRdrEnv"
>LocalRdrEnv</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:extendLocalRdrEnv"
><A NAME="v%3AextendLocalRdrEnv"
></A
></A
><B
>extendLocalRdrEnv</B
> :: <A HREF="RdrName.html#t%3ALocalRdrEnv"
>LocalRdrEnv</A
> -&gt; [<A HREF="Name.html#t%3AName"
>Name</A
>] -&gt; <A HREF="RdrName.html#t%3ALocalRdrEnv"
>LocalRdrEnv</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:lookupLocalRdrEnv"
><A NAME="v%3AlookupLocalRdrEnv"
></A
></A
><B
>lookupLocalRdrEnv</B
> :: <A HREF="RdrName.html#t%3ALocalRdrEnv"
>LocalRdrEnv</A
> -&gt; <A HREF="RdrName.html#t%3ARdrName"
>RdrName</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="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:lookupLocalRdrOcc"
><A NAME="v%3AlookupLocalRdrOcc"
></A
></A
><B
>lookupLocalRdrOcc</B
> :: <A HREF="RdrName.html#t%3ALocalRdrEnv"
>LocalRdrEnv</A
> -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</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="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:elemLocalRdrEnv"
><A NAME="v%3AelemLocalRdrEnv"
></A
></A
><B
>elemLocalRdrEnv</B
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <A HREF="RdrName.html#t%3ALocalRdrEnv"
>LocalRdrEnv</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="6"
><A NAME="6"
>Global mapping of <TT
><A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TT
> to <TT
><A HREF="RdrName.html#t%3AGlobalRdrElt"
>GlobalRdrElt</A
></TT
>s
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:GlobalRdrEnv"
><A NAME="t%3AGlobalRdrEnv"
></A
></A
><B
>GlobalRdrEnv</B
> = <A HREF="OccName.html#t%3AOccEnv"
>OccEnv</A
> [<A HREF="RdrName.html#t%3AGlobalRdrElt"
>GlobalRdrElt</A
>]</TD
></TR
><TR
><TD CLASS="doc"
><P
>Keyed by <TT
><A HREF="OccName.html#t%3AOccName"
>OccName</A
></TT
>; when looking up a qualified name
 we look up the <TT
><A HREF="OccName.html#t%3AOccName"
>OccName</A
></TT
> part, and then check the <TT
><A HREF="RdrName.html#t%3AProvenance"
>Provenance</A
></TT
>
 to see if the appropriate qualification is valid.  This
 saves routinely doubling the size of the env by adding both
 qualified and unqualified names to the domain.
</P
><P
>The list in the codomain is required because there may be name clashes
 These only get reported on lookup, not on construction
</P
><P
>INVARIANT: All the members of the list have distinct 
	      <TT
><A HREF="RdrName.html#v%3Agre_name"
>gre_name</A
></TT
> fields; that is, no duplicate Names
</P
><P
>INVARIANT: Imported provenance =&gt; Name is an ExternalName
 	      However LocalDefs can have an InternalName.  This
	      happens only when type-checking a [d| ... |] Template
	      Haskell quotation; see this note in RnNames
	      Note [Top-level Names in Template Haskell decl quotes]
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:emptyGlobalRdrEnv"
><A NAME="v%3AemptyGlobalRdrEnv"
></A
></A
><B
>emptyGlobalRdrEnv</B
> :: <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkGlobalRdrEnv"
><A NAME="v%3AmkGlobalRdrEnv"
></A
></A
><B
>mkGlobalRdrEnv</B
> :: [<A HREF="RdrName.html#t%3AGlobalRdrElt"
>GlobalRdrElt</A
>] -&gt; <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:plusGlobalRdrEnv"
><A NAME="v%3AplusGlobalRdrEnv"
></A
></A
><B
>plusGlobalRdrEnv</B
> :: <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
> -&gt; <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
> -&gt; <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:lookupGlobalRdrEnv"
><A NAME="v%3AlookupGlobalRdrEnv"
></A
></A
><B
>lookupGlobalRdrEnv</B
> :: <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
> -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; [<A HREF="RdrName.html#t%3AGlobalRdrElt"
>GlobalRdrElt</A
>]</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:extendGlobalRdrEnv"
><A NAME="v%3AextendGlobalRdrEnv"
></A
></A
><B
>extendGlobalRdrEnv</B
> :: <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
> -&gt; <A HREF="RdrName.html#t%3AGlobalRdrElt"
>GlobalRdrElt</A
> -&gt; <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:pprGlobalRdrEnv"
><A NAME="v%3ApprGlobalRdrEnv"
></A
></A
><B
>pprGlobalRdrEnv</B
> :: <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</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:globalRdrEnvElts"
><A NAME="v%3AglobalRdrEnvElts"
></A
></A
><B
>globalRdrEnvElts</B
> :: <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
> -&gt; [<A HREF="RdrName.html#t%3AGlobalRdrElt"
>GlobalRdrElt</A
>]</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:lookupGRE_RdrName"
><A NAME="v%3AlookupGRE_RdrName"
></A
></A
><B
>lookupGRE_RdrName</B
> :: <A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
> -&gt; <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
> -&gt; [<A HREF="RdrName.html#t%3AGlobalRdrElt"
>GlobalRdrElt</A
>]</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:lookupGRE_Name"
><A NAME="v%3AlookupGRE_Name"
></A
></A
><B
>lookupGRE_Name</B
> :: <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; [<A HREF="RdrName.html#t%3AGlobalRdrElt"
>GlobalRdrElt</A
>]</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:getGRE_NameQualifier_maybes"
><A NAME="v%3AgetGRE_NameQualifier_maybes"
></A
></A
><B
>getGRE_NameQualifier_maybes</B
> :: <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; [<A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> [<A HREF="Module.html#t%3AModuleName"
>ModuleName</A
>]]</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:hideSomeUnquals"
><A NAME="v%3AhideSomeUnquals"
></A
></A
><B
>hideSomeUnquals</B
> :: <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
> -&gt; [<A HREF="OccName.html#t%3AOccName"
>OccName</A
>] -&gt; <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
></TD
></TR
><TR
><TD CLASS="doc"
><P
>Hide any unqualified bindings for the specified OccNames
 This is used in TH, when renaming a declaration bracket
</P
><PRE
> [d| foo = ... |]
</PRE
><P
>We want unqualified <TT
>foo</TT
> in <A HREF="---.html"
>...</A
> to mean this <TT
>foo</TT
>, not
 the one from the enclosing module.  But the <EM
>qualified</EM
> name
 from the enclosing module must certainly still be available
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:findLocalDupsRdrEnv"
><A NAME="v%3AfindLocalDupsRdrEnv"
></A
></A
><B
>findLocalDupsRdrEnv</B
> :: <A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
> -&gt; [<A HREF="OccName.html#t%3AOccName"
>OccName</A
>] -&gt; (<A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</A
>, [[<A HREF="Name.html#t%3AName"
>Name</A
>]])</TD
></TR
><TR
><TD CLASS="doc"
>For each <TT
><A HREF="OccName.html#t%3AOccName"
>OccName</A
></TT
>, see if there are multiple local definitions
 for it.  If so, remove all but one (to suppress subsequent error messages)
 and return a list of the duplicate bindings
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="7"
><A NAME="7"
>Global <TT
><A HREF="RdrName.html#t%3ARdrName"
>RdrName</A
></TT
> mapping elements: <TT
><A HREF="RdrName.html#t%3AGlobalRdrElt"
>GlobalRdrElt</A
></TT
>, <TT
><A HREF="RdrName.html#t%3AProvenance"
>Provenance</A
></TT
>, <TT
><A HREF="RdrName.html#t%3AImportSpec"
>ImportSpec</A
></TT
>
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:GlobalRdrElt"
><A NAME="t%3AGlobalRdrElt"
></A
></A
><B
>GlobalRdrElt</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>An element of the <TT
><A HREF="RdrName.html#t%3AGlobalRdrEnv"
>GlobalRdrEnv</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:GRE"
><A NAME="v%3AGRE"
></A
></A
><B
>GRE</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:gre_name"
><A NAME="v%3Agre_name"
></A
></A
><B
>gre_name</B
> :: <A HREF="Name.html#t%3AName"
>Name</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:gre_par"
><A NAME="v%3Agre_par"
></A
></A
><B
>gre_par</B
> :: <A HREF="RdrName.html#t%3AParent"
>Parent</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:gre_prov"
><A NAME="v%3Agre_prov"
></A
></A
><B
>gre_prov</B
> :: <A HREF="RdrName.html#t%3AProvenance"
>Provenance</A
></TD
><TD CLASS="rdoc"
>Why it's in scope
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:GlobalRdrElt')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:GlobalRdrElt" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> <A HREF="RdrName.html#t%3AGlobalRdrElt"
>GlobalRdrElt</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isLocalGRE"
><A NAME="v%3AisLocalGRE"
></A
></A
><B
>isLocalGRE</B
> :: <A HREF="RdrName.html#t%3AGlobalRdrElt"
>GlobalRdrElt</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:unQualOK"
><A NAME="v%3AunQualOK"
></A
></A
><B
>unQualOK</B
> :: <A HREF="RdrName.html#t%3AGlobalRdrElt"
>GlobalRdrElt</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
>Test if an unqualifed version of this thing would be in scope
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:qualSpecOK"
><A NAME="v%3AqualSpecOK"
></A
></A
><B
>qualSpecOK</B
> :: <A HREF="Module.html#t%3AModuleName"
>ModuleName</A
> -&gt; <A HREF="RdrName.html#t%3AImportSpec"
>ImportSpec</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
>Is in scope qualified with the given module?
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:unQualSpecOK"
><A NAME="v%3AunQualSpecOK"
></A
></A
><B
>unQualSpecOK</B
> :: <A HREF="RdrName.html#t%3AImportSpec"
>ImportSpec</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
>Is in scope unqualified?
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:Provenance"
><A NAME="t%3AProvenance"
></A
></A
><B
>Provenance</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>The <TT
><A HREF="RdrName.html#t%3AProvenance"
>Provenance</A
></TT
> of something says how it came to be in scope.
 It's quite elaborate so that we can give accurate unused-name warnings.
</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:LocalDef"
><A NAME="v%3ALocalDef"
></A
></A
><B
>LocalDef</B
></TD
><TD CLASS="rdoc"
>The thing was defined locally
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:Imported"
><A NAME="v%3AImported"
></A
></A
><B
>Imported</B
> [<A HREF="RdrName.html#t%3AImportSpec"
>ImportSpec</A
>]</TD
><TD CLASS="rdoc"
><P
>The thing was imported.
</P
><P
>INVARIANT: the list of <TT
><A HREF="RdrName.html#t%3AImportSpec"
>ImportSpec</A
></TT
> is non-empty
</P
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Provenance')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Provenance" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="RdrName.html#t%3AProvenance"
>Provenance</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Ord.html#t%3AOrd"
>Ord</A
> <A HREF="RdrName.html#t%3AProvenance"
>Provenance</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:pprNameProvenance"
><A NAME="v%3ApprNameProvenance"
></A
></A
><B
>pprNameProvenance</B
> :: <A HREF="RdrName.html#t%3AGlobalRdrElt"
>GlobalRdrElt</A
> -&gt; <A HREF="Outputable.html#t%3ASDoc"
>SDoc</A
></TD
></TR
><TR
><TD CLASS="doc"
>Print out the place where the name was imported
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:Parent"
><A NAME="t%3AParent"
></A
></A
><B
>Parent</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>The children of a Name are the things that are abbreviated by the <A HREF="--.html"
>..</A
>
   notation in export lists.  Specifically:
	TyCon	Children are * data constructors
			     * record field ids
	Class	Children are * class operations
 Each child has the parent thing as its Parent
</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:NoParent"
><A NAME="v%3ANoParent"
></A
></A
><B
>NoParent</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ParentIs"
><A NAME="v%3AParentIs"
></A
></A
><B
>ParentIs</B
> <A HREF="Name.html#t%3AName"
>Name</A
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Parent')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Parent" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="RdrName.html#t%3AParent"
>Parent</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> <A HREF="RdrName.html#t%3AParent"
>Parent</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:ImportSpec"
><A NAME="t%3AImportSpec"
></A
></A
><B
>ImportSpec</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:ImpSpec"
><A NAME="v%3AImpSpec"
></A
></A
><B
>ImpSpec</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:is_decl"
><A NAME="v%3Ais_decl"
></A
></A
><B
>is_decl</B
> :: <A HREF="RdrName.html#t%3AImpDeclSpec"
>ImpDeclSpec</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:is_item"
><A NAME="v%3Ais_item"
></A
></A
><B
>is_item</B
> :: <A HREF="RdrName.html#t%3AImpItemSpec"
>ImpItemSpec</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:ImportSpec')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:ImportSpec" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="RdrName.html#t%3AImportSpec"
>ImportSpec</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Ord.html#t%3AOrd"
>Ord</A
> <A HREF="RdrName.html#t%3AImportSpec"
>ImportSpec</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> <A HREF="RdrName.html#t%3AImportSpec"
>ImportSpec</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:ImpDeclSpec"
><A NAME="t%3AImpDeclSpec"
></A
></A
><B
>ImpDeclSpec</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Describes a particular import declaration and is
 shared among all the <TT
><A HREF="RdrName.html#t%3AProvenance"
>Provenance</A
></TT
>s for that decl
</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:ImpDeclSpec"
><A NAME="v%3AImpDeclSpec"
></A
></A
><B
>ImpDeclSpec</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:is_mod"
><A NAME="v%3Ais_mod"
></A
></A
><B
>is_mod</B
> :: <A HREF="Module.html#t%3AModuleName"
>ModuleName</A
></TD
><TD CLASS="rdoc"
>Module imported, e.g. <TT
>import Muggle</TT
>
 Note the <TT
>Muggle</TT
> may well not be 
 the defining module for this thing!
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:is_as"
><A NAME="v%3Ais_as"
></A
></A
><B
>is_as</B
> :: <A HREF="Module.html#t%3AModuleName"
>ModuleName</A
></TD
><TD CLASS="rdoc"
>Import alias, e.g. from <TT
>as M</TT
> (or <TT
>Muggle</TT
> if there is no <TT
>as</TT
> clause)
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:is_qual"
><A NAME="v%3Ais_qual"
></A
></A
><B
>is_qual</B
> :: <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
><TD CLASS="rdoc"
>Was this import qualified?
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:is_dloc"
><A NAME="v%3Ais_dloc"
></A
></A
><B
>is_dloc</B
> :: <A HREF="SrcLoc.html#t%3ASrcSpan"
>SrcSpan</A
></TD
><TD CLASS="rdoc"
>The location of the import declaration
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ImpDeclSpec')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:ImpDeclSpec" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="RdrName.html#t%3AImpDeclSpec"
>ImpDeclSpec</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Ord.html#t%3AOrd"
>Ord</A
> <A HREF="RdrName.html#t%3AImpDeclSpec"
>ImpDeclSpec</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:ImpItemSpec"
><A NAME="t%3AImpItemSpec"
></A
></A
><B
>ImpItemSpec</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Describes import info a particular Name
</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:ImpAll"
><A NAME="v%3AImpAll"
></A
></A
><B
>ImpAll</B
></TD
><TD CLASS="rdoc"
>The import had no import list, 
 or had a hiding list
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:ImpSome"
><A NAME="v%3AImpSome"
></A
></A
><B
>ImpSome</B
></TD
><TD CLASS="rdoc"
><P
>The import had an import list.
 The <TT
><A HREF="RdrName.html#v%3Ais_explicit"
>is_explicit</A
></TT
> field is <TT
>True</TT
> iff the thing was named 
 <EM
>explicitly</EM
> in the import specs rather
 than being imported as part of a <A HREF="---.html"
>...</A
> group. Consider:
</P
><PRE
> import C( T(..) )
</PRE
><P
>Here the constructors of <TT
>T</TT
> are not named explicitly; 
 only <TT
>T</TT
> is named explicitly.
</P
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:is_explicit"
><A NAME="v%3Ais_explicit"
></A
></A
><B
>is_explicit</B
> :: <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:is_iloc"
><A NAME="v%3Ais_iloc"
></A
></A
><B
>is_iloc</B
> :: <A HREF="SrcLoc.html#t%3ASrcSpan"
>SrcSpan</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:ImpItemSpec')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:ImpItemSpec" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="RdrName.html#t%3AImpItemSpec"
>ImpItemSpec</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Ord.html#t%3AOrd"
>Ord</A
> <A HREF="RdrName.html#t%3AImpItemSpec"
>ImpItemSpec</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:importSpecLoc"
><A NAME="v%3AimportSpecLoc"
></A
></A
><B
>importSpecLoc</B
> :: <A HREF="RdrName.html#t%3AImportSpec"
>ImportSpec</A
> -&gt; <A HREF="SrcLoc.html#t%3ASrcSpan"
>SrcSpan</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:importSpecModule"
><A NAME="v%3AimportSpecModule"
></A
></A
><B
>importSpecModule</B
> :: <A HREF="RdrName.html#t%3AImportSpec"
>ImportSpec</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:isExplicitItem"
><A NAME="v%3AisExplicitItem"
></A
></A
><B
>isExplicitItem</B
> :: <A HREF="RdrName.html#t%3AImpItemSpec"
>ImpItemSpec</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</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
>