Sophie

Sophie

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

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
>Name</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_Name.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"
>Name</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 types
</A
></DT
><DD
><DL
><DT
><A HREF="#2"
>Creating <TT
><A HREF="Name.html#t%3AName"
>Name</A
></TT
>s
</A
></DT
><DT
><A HREF="#3"
>Manipulating and deconstructing <TT
><A HREF="Name.html#t%3AName"
>Name</A
></TT
>s
</A
></DT
><DT
><A HREF="#4"
>Predicates on <TT
><A HREF="Name.html#t%3AName"
>Name</A
></TT
>s
</A
></DT
></DL
></DD
><DT
><A HREF="#5"
>Class <TT
><A HREF="Name.html#t%3ANamedThing"
>NamedThing</A
></TT
> and overloaded friends
</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"
><P
><A NAME="name_types"
><A NAME="name_types"
></A
></A
>
 GHC uses several kinds of name internally:
</P
><UL
><LI
> <TT
><A HREF="OccName.html#t%3AOccName"
>OccName</A
></TT
>: see <A HREF="OccName.html#name_types"
>OccName</A
>
</LI
><LI
> RdrName.RdrName: see <A HREF="RdrName.html#name_types"
>RdrName</A
>
</LI
><LI
>  <TT
><A HREF="Name.html#t%3AName"
>Name</A
></TT
> is the type of names that have had their scoping and binding resolved. They
   have an <TT
><A HREF="OccName.html#t%3AOccName"
>OccName</A
></TT
> but also a <TT
><A HREF="Unique.html#t%3AUnique"
>Unique</A
></TT
> that disambiguates Names that have
   the same <TT
><A HREF="OccName.html#t%3AOccName"
>OccName</A
></TT
> and indeed is used for all <TT
><A HREF="Name.html#t%3AName"
>Name</A
></TT
> comparison. Names
   also contain information about where they originated from, see <A HREF="Name.html#name_sorts"
>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
><P
><A NAME="name_sorts"
><A NAME="name_sorts"
></A
></A
>
 Names are one of:
</P
><UL
><LI
> External, if they name things declared in other modules. Some external
    Names are wired in, i.e. they name primitives defined in the compiler itself
</LI
><LI
> Internal, if they name things in the module being compiled. Some internal
    Names are system names, if they are names manufactured by the compiler
</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"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AName"
>Name</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%3ABuiltInSyntax"
>BuiltInSyntax</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3ABuiltInSyntax"
>BuiltInSyntax</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AUserSyntax"
>UserSyntax</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkInternalName"
>mkInternalName</A
> :: <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="SrcLoc.html#t%3ASrcSpan"
>SrcSpan</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkSystemName"
>mkSystemName</A
> :: <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkSystemVarName"
>mkSystemVarName</A
> :: <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="FastString.html#t%3AFastString"
>FastString</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkSysTvName"
>mkSysTvName</A
> :: <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="FastString.html#t%3AFastString"
>FastString</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkFCallName"
>mkFCallName</A
> :: <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="../base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkIPName"
>mkIPName</A
> :: <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkTickBoxOpName"
>mkTickBoxOpName</A
> :: <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="../base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkExternalName"
>mkExternalName</A
> :: <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="Module.html#t%3AModule"
>Module</A
> -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="SrcLoc.html#t%3ASrcSpan"
>SrcSpan</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkWiredInName"
>mkWiredInName</A
> :: <A HREF="Module.html#t%3AModule"
>Module</A
> -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="Type.html#t%3ATyThing"
>TyThing</A
> -&gt; <A HREF="Name.html#t%3ABuiltInSyntax"
>BuiltInSyntax</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AnameUnique"
>nameUnique</A
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="Unique.html#t%3AUnique"
>Unique</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsetNameUnique"
>setNameUnique</A
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AnameOccName"
>nameOccName</A
> :: <A HREF="Name.html#t%3AName"
>Name</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%3AnameModule"
>nameModule</A
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="Module.html#t%3AModule"
>Module</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AnameModule_maybe"
>nameModule_maybe</A
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Module.html#t%3AModule"
>Module</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtidyNameOcc"
>tidyNameOcc</A
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AhashName"
>hashName</A
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AlocaliseName"
>localiseName</A
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AnameSrcLoc"
>nameSrcLoc</A
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="SrcLoc.html#t%3ASrcLoc"
>SrcLoc</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AnameSrcSpan"
>nameSrcSpan</A
> :: <A HREF="Name.html#t%3AName"
>Name</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%3ApprNameLoc"
>pprNameLoc</A
> :: <A HREF="Name.html#t%3AName"
>Name</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%3AisSystemName"
>isSystemName</A
> :: <A HREF="Name.html#t%3AName"
>Name</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%3AisInternalName"
>isInternalName</A
> :: <A HREF="Name.html#t%3AName"
>Name</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%3AisExternalName"
>isExternalName</A
> :: <A HREF="Name.html#t%3AName"
>Name</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%3AisTyVarName"
>isTyVarName</A
> :: <A HREF="Name.html#t%3AName"
>Name</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%3AisTyConName"
>isTyConName</A
> :: <A HREF="Name.html#t%3AName"
>Name</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%3AisDataConName"
>isDataConName</A
> :: <A HREF="Name.html#t%3AName"
>Name</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%3AisValName"
>isValName</A
> :: <A HREF="Name.html#t%3AName"
>Name</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%3AisVarName"
>isVarName</A
> :: <A HREF="Name.html#t%3AName"
>Name</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%3AisWiredInName"
>isWiredInName</A
> :: <A HREF="Name.html#t%3AName"
>Name</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%3AisBuiltInSyntax"
>isBuiltInSyntax</A
> :: <A HREF="Name.html#t%3AName"
>Name</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%3AwiredInNameTyThing_maybe"
>wiredInNameTyThing_maybe</A
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Type.html#t%3ATyThing"
>TyThing</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AnameIsLocalOrFrom"
>nameIsLocalOrFrom</A
> :: <A HREF="Module.html#t%3AModule"
>Module</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</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"
>class</SPAN
>  <A HREF="#t%3ANamedThing"
>NamedThing</A
> a  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="#v%3AgetOccName"
>getOccName</A
> :: a -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AgetName"
>getName</A
> :: a -&gt; <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AgetSrcLoc"
>getSrcLoc</A
> :: <A HREF="Name.html#t%3ANamedThing"
>NamedThing</A
> a =&gt; a -&gt; <A HREF="SrcLoc.html#t%3ASrcLoc"
>SrcLoc</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AgetSrcSpan"
>getSrcSpan</A
> :: <A HREF="Name.html#t%3ANamedThing"
>NamedThing</A
> a =&gt; 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%3AgetOccString"
>getOccString</A
> :: <A HREF="Name.html#t%3ANamedThing"
>NamedThing</A
> a =&gt; a -&gt; <A HREF="../base/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ApprInfixName"
>pprInfixName</A
> :: (<A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> a, <A HREF="Name.html#t%3ANamedThing"
>NamedThing</A
> a) =&gt; 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%3ApprPrefixName"
>pprPrefixName</A
> :: (<A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> a, <A HREF="Name.html#t%3ANamedThing"
>NamedThing</A
> a) =&gt; a -&gt; <A HREF="Outputable.html#t%3ASDoc"
>SDoc</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
>module <A HREF="OccName.html"
>OccName</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 types
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:Name"
><A NAME="t%3AName"
></A
></A
><B
>Name</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>A unique, unambigious name for something, containing information about where
 that thing originated.
</TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Name')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Name" 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="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Ord.html#t%3AOrd"
>Ord</A
> <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Outputable.html#t%3AOutputableBndr"
>OutputableBndr</A
> <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Unique.html#t%3AUniquable"
>Uniquable</A
> <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Binary.html#t%3ABinary"
>Binary</A
> <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Name.html#t%3ANamedThing"
>NamedThing</A
> <A HREF="Name.html#t%3AName"
>Name</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:BuiltInSyntax"
><A NAME="t%3ABuiltInSyntax"
></A
></A
><B
>BuiltInSyntax</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>BuiltInSyntax is for things like <TT
>(:)</TT
>, <TT
>[]</TT
> and tuples, 
 which have special syntactic forms.  They aren't in scope
 as such.
</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:BuiltInSyntax"
><A NAME="v%3ABuiltInSyntax"
></A
></A
><B
>BuiltInSyntax</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:UserSyntax"
><A NAME="v%3AUserSyntax"
></A
></A
><B
>UserSyntax</B
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="2"
><A NAME="2"
>Creating <TT
><A HREF="Name.html#t%3AName"
>Name</A
></TT
>s
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkInternalName"
><A NAME="v%3AmkInternalName"
></A
></A
><B
>mkInternalName</B
> :: <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="SrcLoc.html#t%3ASrcSpan"
>SrcSpan</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="doc"
>Create a name which is (for now at least) local to the current module and hence
 does not need a <TT
><A HREF="Module.html#t%3AModule"
>Module</A
></TT
> to disambiguate it from other <TT
><A HREF="Name.html#t%3AName"
>Name</A
></TT
>s
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkSystemName"
><A NAME="v%3AmkSystemName"
></A
></A
><B
>mkSystemName</B
> :: <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="doc"
>Create a name brought into being by the compiler
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkSystemVarName"
><A NAME="v%3AmkSystemVarName"
></A
></A
><B
>mkSystemVarName</B
> :: <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="FastString.html#t%3AFastString"
>FastString</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkSysTvName"
><A NAME="v%3AmkSysTvName"
></A
></A
><B
>mkSysTvName</B
> :: <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="FastString.html#t%3AFastString"
>FastString</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkFCallName"
><A NAME="v%3AmkFCallName"
></A
></A
><B
>mkFCallName</B
> :: <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="../base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="doc"
>Make a name for a foreign call
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkIPName"
><A NAME="v%3AmkIPName"
></A
></A
><B
>mkIPName</B
> :: <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="doc"
>Make the name of an implicit parameter
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkTickBoxOpName"
><A NAME="v%3AmkTickBoxOpName"
></A
></A
><B
>mkTickBoxOpName</B
> :: <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="../base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkExternalName"
><A NAME="v%3AmkExternalName"
></A
></A
><B
>mkExternalName</B
> :: <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="Module.html#t%3AModule"
>Module</A
> -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="SrcLoc.html#t%3ASrcSpan"
>SrcSpan</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="doc"
>Create a name which definitely originates in the given module
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkWiredInName"
><A NAME="v%3AmkWiredInName"
></A
></A
><B
>mkWiredInName</B
> :: <A HREF="Module.html#t%3AModule"
>Module</A
> -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="Type.html#t%3ATyThing"
>TyThing</A
> -&gt; <A HREF="Name.html#t%3ABuiltInSyntax"
>BuiltInSyntax</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="doc"
>Create a name which is actually defined by the compiler itself
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="3"
><A NAME="3"
>Manipulating and deconstructing <TT
><A HREF="Name.html#t%3AName"
>Name</A
></TT
>s
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:nameUnique"
><A NAME="v%3AnameUnique"
></A
></A
><B
>nameUnique</B
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="Unique.html#t%3AUnique"
>Unique</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:setNameUnique"
><A NAME="v%3AsetNameUnique"
></A
></A
><B
>setNameUnique</B
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:nameOccName"
><A NAME="v%3AnameOccName"
></A
></A
><B
>nameOccName</B
> :: <A HREF="Name.html#t%3AName"
>Name</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:nameModule"
><A NAME="v%3AnameModule"
></A
></A
><B
>nameModule</B
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="Module.html#t%3AModule"
>Module</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:nameModule_maybe"
><A NAME="v%3AnameModule_maybe"
></A
></A
><B
>nameModule_maybe</B
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Module.html#t%3AModule"
>Module</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:tidyNameOcc"
><A NAME="v%3AtidyNameOcc"
></A
></A
><B
>tidyNameOcc</B
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:hashName"
><A NAME="v%3AhashName"
></A
></A
><B
>hashName</B
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:localiseName"
><A NAME="v%3AlocaliseName"
></A
></A
><B
>localiseName</B
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="doc"
>Make the <TT
><A HREF="Name.html#t%3AName"
>Name</A
></TT
> into an internal name, regardless of what it was to begin with
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:nameSrcLoc"
><A NAME="v%3AnameSrcLoc"
></A
></A
><B
>nameSrcLoc</B
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="SrcLoc.html#t%3ASrcLoc"
>SrcLoc</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:nameSrcSpan"
><A NAME="v%3AnameSrcSpan"
></A
></A
><B
>nameSrcSpan</B
> :: <A HREF="Name.html#t%3AName"
>Name</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:pprNameLoc"
><A NAME="v%3ApprNameLoc"
></A
></A
><B
>pprNameLoc</B
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="Outputable.html#t%3ASDoc"
>SDoc</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="4"
><A NAME="4"
>Predicates on <TT
><A HREF="Name.html#t%3AName"
>Name</A
></TT
>s
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isSystemName"
><A NAME="v%3AisSystemName"
></A
></A
><B
>isSystemName</B
> :: <A HREF="Name.html#t%3AName"
>Name</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:isInternalName"
><A NAME="v%3AisInternalName"
></A
></A
><B
>isInternalName</B
> :: <A HREF="Name.html#t%3AName"
>Name</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:isExternalName"
><A NAME="v%3AisExternalName"
></A
></A
><B
>isExternalName</B
> :: <A HREF="Name.html#t%3AName"
>Name</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:isTyVarName"
><A NAME="v%3AisTyVarName"
></A
></A
><B
>isTyVarName</B
> :: <A HREF="Name.html#t%3AName"
>Name</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:isTyConName"
><A NAME="v%3AisTyConName"
></A
></A
><B
>isTyConName</B
> :: <A HREF="Name.html#t%3AName"
>Name</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:isDataConName"
><A NAME="v%3AisDataConName"
></A
></A
><B
>isDataConName</B
> :: <A HREF="Name.html#t%3AName"
>Name</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:isValName"
><A NAME="v%3AisValName"
></A
></A
><B
>isValName</B
> :: <A HREF="Name.html#t%3AName"
>Name</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:isVarName"
><A NAME="v%3AisVarName"
></A
></A
><B
>isVarName</B
> :: <A HREF="Name.html#t%3AName"
>Name</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:isWiredInName"
><A NAME="v%3AisWiredInName"
></A
></A
><B
>isWiredInName</B
> :: <A HREF="Name.html#t%3AName"
>Name</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:isBuiltInSyntax"
><A NAME="v%3AisBuiltInSyntax"
></A
></A
><B
>isBuiltInSyntax</B
> :: <A HREF="Name.html#t%3AName"
>Name</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:wiredInNameTyThing_maybe"
><A NAME="v%3AwiredInNameTyThing_maybe"
></A
></A
><B
>wiredInNameTyThing_maybe</B
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Type.html#t%3ATyThing"
>TyThing</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:nameIsLocalOrFrom"
><A NAME="v%3AnameIsLocalOrFrom"
></A
></A
><B
>nameIsLocalOrFrom</B
> :: <A HREF="Module.html#t%3AModule"
>Module</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</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="5"
><A NAME="5"
>Class <TT
><A HREF="Name.html#t%3ANamedThing"
>NamedThing</A
></TT
> and overloaded friends
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A NAME="t:NamedThing"
><A NAME="t%3ANamedThing"
></A
></A
><B
>NamedThing</B
> a  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>A class allowing convenient access to the <TT
><A HREF="Name.html#t%3AName"
>Name</A
></TT
> of various datatypes
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
>Methods</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A NAME="v:getOccName"
><A NAME="v%3AgetOccName"
></A
></A
><B
>getOccName</B
> :: a -&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:getName"
><A NAME="v%3AgetName"
></A
></A
><B
>getName</B
> :: a -&gt; <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:NamedThing')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:NamedThing" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Name.html#t%3ANamedThing"
>NamedThing</A
> <A HREF="Type.html#t%3ATyThing"
>TyThing</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Name.html#t%3ANamedThing"
>NamedThing</A
> <A HREF="TyCon.html#t%3ATyCon"
>TyCon</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Name.html#t%3ANamedThing"
>NamedThing</A
> <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Name.html#t%3ANamedThing"
>NamedThing</A
> <A HREF="DataCon.html#t%3ADataCon"
>DataCon</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Name.html#t%3ANamedThing"
>NamedThing</A
> <A HREF="Var.html#t%3AVar"
>Var</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Name.html#t%3ANamedThing"
>NamedThing</A
> <A HREF="Class.html#t%3AClass"
>Class</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Name.html#t%3ANamedThing"
>NamedThing</A
> <A HREF="InstEnv.html#t%3AInstance"
>Instance</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Name.html#t%3ANamedThing"
>NamedThing</A
> <A HREF="FamInstEnv.html#t%3AFamInst"
>FamInst</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:getSrcLoc"
><A NAME="v%3AgetSrcLoc"
></A
></A
><B
>getSrcLoc</B
> :: <A HREF="Name.html#t%3ANamedThing"
>NamedThing</A
> a =&gt; a -&gt; <A HREF="SrcLoc.html#t%3ASrcLoc"
>SrcLoc</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:getSrcSpan"
><A NAME="v%3AgetSrcSpan"
></A
></A
><B
>getSrcSpan</B
> :: <A HREF="Name.html#t%3ANamedThing"
>NamedThing</A
> a =&gt; 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:getOccString"
><A NAME="v%3AgetOccString"
></A
></A
><B
>getOccString</B
> :: <A HREF="Name.html#t%3ANamedThing"
>NamedThing</A
> a =&gt; a -&gt; <A HREF="../base/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:pprInfixName"
><A NAME="v%3ApprInfixName"
></A
></A
><B
>pprInfixName</B
> :: (<A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> a, <A HREF="Name.html#t%3ANamedThing"
>NamedThing</A
> a) =&gt; 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:pprPrefixName"
><A NAME="v%3ApprPrefixName"
></A
></A
><B
>pprPrefixName</B
> :: (<A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> a, <A HREF="Name.html#t%3ANamedThing"
>NamedThing</A
> a) =&gt; a -&gt; <A HREF="Outputable.html#t%3ASDoc"
>SDoc</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
>module <A HREF="OccName.html"
>OccName</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
>