Sophie

Sophie

distrib > Mageia > 5 > x86_64 > media > core-release > by-pkgid > 956c458aa5fe9afc4d2c00cb7b491287 > files > 2954

ghc-7.4.2-4.mga5.x86_64.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Name</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Name.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">ghc-7.4.2: The GHC API</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr></table><p class="caption">Name</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">The main types
</a><ul><li><a href="#g:2">Creating <code><a href="Name.html#t:Name">Name</a></code>s
</a></li><li><a href="#g:3">Manipulating and deconstructing <code><a href="Name.html#t:Name">Name</a></code>s
</a></li><li><a href="#g:4">Predicates on <code><a href="Name.html#t:Name">Name</a></code>s
</a></li></ul></li><li><a href="#g:5">Class <code><a href="Name.html#t:NamedThing">NamedThing</a></code> and overloaded friends
</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p><a name="name_types"></a>
 GHC uses several kinds of name internally:
</p><ul><li> <code><a href="OccName.html#t:OccName">OccName</a></code>: see <a href="OccName.html#name_types">OccName</a>
</li><li> <code><a href="RdrName.html#t:RdrName">RdrName</a></code>: see <a href="RdrName.html#name_types">RdrName</a>
</li><li>  <code><a href="Name.html#t:Name">Name</a></code> is the type of names that have had their scoping and binding resolved. They
   have an <code><a href="OccName.html#t:OccName">OccName</a></code> but also a <code><a href="Unique.html#t:Unique">Unique</a></code> that disambiguates Names that have
   the same <code><a href="OccName.html#t:OccName">OccName</a></code> and indeed is used for all <code><a href="Name.html#t:Name">Name</a></code> comparison. Names
   also contain information about where they originated from, see <a href="Name.html#name_sorts">Name</a>
</li><li> <code><a href="Id.html#t:Id">Id</a></code>: see <a href="Id.html#name_types">Id</a>
</li><li> <code><a href="Var.html#t:Var">Var</a></code>: see <a href="Var.html#name_types">Var</a>
</li></ul><p><a name="name_sorts"></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></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span>  <a href="#t:Name">Name</a> </li><li class="src short"><span class="keyword">data</span>  <a href="#t:BuiltInSyntax">BuiltInSyntax</a> <ul class="subs"><li>= <a href="#v:BuiltInSyntax">BuiltInSyntax</a>  </li><li>| <a href="#v:UserSyntax">UserSyntax</a>  </li></ul></li><li class="src short"><a href="#v:mkSystemName">mkSystemName</a> :: <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="OccName.html#t:OccName">OccName</a> -&gt; <a href="Name.html#t:Name">Name</a></li><li class="src short"><a href="#v:mkSystemNameAt">mkSystemNameAt</a> :: <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="OccName.html#t:OccName">OccName</a> -&gt; <a href="SrcLoc.html#t:SrcSpan">SrcSpan</a> -&gt; <a href="Name.html#t:Name">Name</a></li><li class="src short"><a href="#v:mkInternalName">mkInternalName</a> :: <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="OccName.html#t:OccName">OccName</a> -&gt; <a href="SrcLoc.html#t:SrcSpan">SrcSpan</a> -&gt; <a href="Name.html#t:Name">Name</a></li><li class="src short"><a href="#v:mkDerivedInternalName">mkDerivedInternalName</a> :: (<a href="OccName.html#t:OccName">OccName</a> -&gt; <a href="OccName.html#t:OccName">OccName</a>) -&gt; <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="Name.html#t:Name">Name</a> -&gt; <a href="Name.html#t:Name">Name</a></li><li class="src short"><a href="#v:mkSystemVarName">mkSystemVarName</a> :: <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="FastString.html#t:FastString">FastString</a> -&gt; <a href="Name.html#t:Name">Name</a></li><li class="src short"><a href="#v:mkSysTvName">mkSysTvName</a> :: <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="FastString.html#t:FastString">FastString</a> -&gt; <a href="Name.html#t:Name">Name</a></li><li class="src short"><a href="#v:mkFCallName">mkFCallName</a> :: <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Name.html#t:Name">Name</a></li><li class="src short"><a href="#v:mkExternalName">mkExternalName</a> :: <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="Module.html#t:Module">Module</a> -&gt; <a href="OccName.html#t:OccName">OccName</a> -&gt; <a href="SrcLoc.html#t:SrcSpan">SrcSpan</a> -&gt; <a href="Name.html#t:Name">Name</a></li><li class="src short"><a href="#v:mkWiredInName">mkWiredInName</a> :: <a href="Module.html#t:Module">Module</a> -&gt; <a href="OccName.html#t:OccName">OccName</a> -&gt; <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="Type.html#t:TyThing">TyThing</a> -&gt; <a href="Name.html#t:BuiltInSyntax">BuiltInSyntax</a> -&gt; <a href="Name.html#t:Name">Name</a></li><li class="src short"><a href="#v:nameUnique">nameUnique</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="Unique.html#t:Unique">Unique</a></li><li class="src short"><a href="#v:setNameUnique">setNameUnique</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="Name.html#t:Name">Name</a></li><li class="src short"><a href="#v:nameOccName">nameOccName</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="OccName.html#t:OccName">OccName</a></li><li class="src short"><a href="#v:nameModule">nameModule</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="Module.html#t:Module">Module</a></li><li class="src short"><a href="#v:nameModule_maybe">nameModule_maybe</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Module.html#t:Module">Module</a></li><li class="src short"><a href="#v:tidyNameOcc">tidyNameOcc</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="OccName.html#t:OccName">OccName</a> -&gt; <a href="Name.html#t:Name">Name</a></li><li class="src short"><a href="#v:hashName">hashName</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:localiseName">localiseName</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="Name.html#t:Name">Name</a></li><li class="src short"><a href="#v:mkLocalisedOccName">mkLocalisedOccName</a> :: <a href="Module.html#t:Module">Module</a> -&gt; (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="OccName.html#t:OccName">OccName</a> -&gt; <a href="OccName.html#t:OccName">OccName</a>) -&gt; <a href="Name.html#t:Name">Name</a> -&gt; <a href="OccName.html#t:OccName">OccName</a></li><li class="src short"><a href="#v:nameSrcLoc">nameSrcLoc</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="SrcLoc.html#t:SrcLoc">SrcLoc</a></li><li class="src short"><a href="#v:nameSrcSpan">nameSrcSpan</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="SrcLoc.html#t:SrcSpan">SrcSpan</a></li><li class="src short"><a href="#v:pprNameDefnLoc">pprNameDefnLoc</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></li><li class="src short"><a href="#v:pprDefinedAt">pprDefinedAt</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></li><li class="src short"><a href="#v:isSystemName">isSystemName</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isInternalName">isInternalName</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isExternalName">isExternalName</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isTyVarName">isTyVarName</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isTyConName">isTyConName</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isDataConName">isDataConName</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isValName">isValName</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isVarName">isVarName</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isWiredInName">isWiredInName</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isBuiltInSyntax">isBuiltInSyntax</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:wiredInNameTyThing_maybe">wiredInNameTyThing_maybe</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Type.html#t:TyThing">TyThing</a></li><li class="src short"><a href="#v:nameIsLocalOrFrom">nameIsLocalOrFrom</a> :: <a href="Module.html#t:Module">Module</a> -&gt; <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:stableNameCmp">stableNameCmp</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Ord.html#t:Ordering">Ordering</a></li><li class="src short"><span class="keyword">class</span>  <a href="#t:NamedThing">NamedThing</a> a  <span class="keyword">where</span><ul class="subs"><li><a href="#v:getOccName">getOccName</a> :: a -&gt; <a href="OccName.html#t:OccName">OccName</a></li><li><a href="#v:getName">getName</a> :: a -&gt; <a href="Name.html#t:Name">Name</a></li></ul></li><li class="src short"><a href="#v:getSrcLoc">getSrcLoc</a> :: <a href="Name.html#t:NamedThing">NamedThing</a> a =&gt; a -&gt; <a href="SrcLoc.html#t:SrcLoc">SrcLoc</a></li><li class="src short"><a href="#v:getSrcSpan">getSrcSpan</a> :: <a href="Name.html#t:NamedThing">NamedThing</a> a =&gt; a -&gt; <a href="SrcLoc.html#t:SrcSpan">SrcSpan</a></li><li class="src short"><a href="#v:getOccString">getOccString</a> :: <a href="Name.html#t:NamedThing">NamedThing</a> a =&gt; a -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:pprInfixName">pprInfixName</a> :: (<a href="Outputable.html#t:Outputable">Outputable</a> a, <a href="Name.html#t:NamedThing">NamedThing</a> a) =&gt; a -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></li><li class="src short"><a href="#v:pprPrefixName">pprPrefixName</a> :: (<a href="Outputable.html#t:Outputable">Outputable</a> a, <a href="Name.html#t:NamedThing">NamedThing</a> a) =&gt; a -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></li><li class="src short"><a href="#v:pprModulePrefix">pprModulePrefix</a> :: <a href="Outputable.html#t:PprStyle">PprStyle</a> -&gt; <a href="Module.html#t:Module">Module</a> -&gt; <a href="Name.html#t:Name">Name</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></li><li class="src short">module <a href="OccName.html">OccName</a></li></ul></div><div id="interface"><h1 id="g:1">The main types
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Name" class="def">Name</a>  </p><div class="doc"><p>A unique, unambigious name for something, containing information about where
 that thing originated.
</p></div><div class="subs instances"><p id="control.i:Name" class="caption collapser" onclick="toggleSection('i:Name')">Instances</p><div id="section.i:Name" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Name.html#t:Name">Name</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="Name.html#t:Name">Name</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Name.html#t:Name">Name</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Name.html#t:Name">Name</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:OutputableBndr">OutputableBndr</a> <a href="Name.html#t:Name">Name</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="Name.html#t:Name">Name</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Unique.html#t:Uniquable">Uniquable</a> <a href="Name.html#t:Name">Name</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Binary.html#t:Binary">Binary</a> <a href="Name.html#t:Name">Name</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Name.html#t:NamedThing">NamedThing</a> <a href="Name.html#t:Name">Name</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:BuiltInSyntax" class="def">BuiltInSyntax</a>  </p><div class="doc"><p>BuiltInSyntax is for things like <code>(:)</code>, <code>[]</code> and tuples, 
 which have special syntactic forms.  They aren't in scope
 as such.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:BuiltInSyntax" class="def">BuiltInSyntax</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:UserSyntax" class="def">UserSyntax</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div><h2 id="g:2">Creating <code><a href="Name.html#t:Name">Name</a></code>s
</h2><div class="top"><p class="src"><a name="v:mkSystemName" class="def">mkSystemName</a> :: <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="OccName.html#t:OccName">OccName</a> -&gt; <a href="Name.html#t:Name">Name</a></p><div class="doc"><p>Create a name brought into being by the compiler
</p></div></div><div class="top"><p class="src"><a name="v:mkSystemNameAt" class="def">mkSystemNameAt</a> :: <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="OccName.html#t:OccName">OccName</a> -&gt; <a href="SrcLoc.html#t:SrcSpan">SrcSpan</a> -&gt; <a href="Name.html#t:Name">Name</a></p></div><div class="top"><p class="src"><a name="v:mkInternalName" class="def">mkInternalName</a> :: <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="OccName.html#t:OccName">OccName</a> -&gt; <a href="SrcLoc.html#t:SrcSpan">SrcSpan</a> -&gt; <a href="Name.html#t:Name">Name</a></p><div class="doc"><p>Create a name which is (for now at least) local to the current module and hence
 does not need a <code><a href="Module.html#t:Module">Module</a></code> to disambiguate it from other <code><a href="Name.html#t:Name">Name</a></code>s
</p></div></div><div class="top"><p class="src"><a name="v:mkDerivedInternalName" class="def">mkDerivedInternalName</a> :: (<a href="OccName.html#t:OccName">OccName</a> -&gt; <a href="OccName.html#t:OccName">OccName</a>) -&gt; <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="Name.html#t:Name">Name</a> -&gt; <a href="Name.html#t:Name">Name</a></p></div><div class="top"><p class="src"><a name="v:mkSystemVarName" class="def">mkSystemVarName</a> :: <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="FastString.html#t:FastString">FastString</a> -&gt; <a href="Name.html#t:Name">Name</a></p></div><div class="top"><p class="src"><a name="v:mkSysTvName" class="def">mkSysTvName</a> :: <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="FastString.html#t:FastString">FastString</a> -&gt; <a href="Name.html#t:Name">Name</a></p></div><div class="top"><p class="src"><a name="v:mkFCallName" class="def">mkFCallName</a> :: <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Name.html#t:Name">Name</a></p><div class="doc"><p>Make a name for a foreign call
</p></div></div><div class="top"><p class="src"><a name="v:mkExternalName" class="def">mkExternalName</a> :: <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="Module.html#t:Module">Module</a> -&gt; <a href="OccName.html#t:OccName">OccName</a> -&gt; <a href="SrcLoc.html#t:SrcSpan">SrcSpan</a> -&gt; <a href="Name.html#t:Name">Name</a></p><div class="doc"><p>Create a name which definitely originates in the given module
</p></div></div><div class="top"><p class="src"><a name="v:mkWiredInName" class="def">mkWiredInName</a> :: <a href="Module.html#t:Module">Module</a> -&gt; <a href="OccName.html#t:OccName">OccName</a> -&gt; <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="Type.html#t:TyThing">TyThing</a> -&gt; <a href="Name.html#t:BuiltInSyntax">BuiltInSyntax</a> -&gt; <a href="Name.html#t:Name">Name</a></p><div class="doc"><p>Create a name which is actually defined by the compiler itself
</p></div></div><h2 id="g:3">Manipulating and deconstructing <code><a href="Name.html#t:Name">Name</a></code>s
</h2><div class="top"><p class="src"><a name="v:nameUnique" class="def">nameUnique</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="Unique.html#t:Unique">Unique</a></p></div><div class="top"><p class="src"><a name="v:setNameUnique" class="def">setNameUnique</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="Name.html#t:Name">Name</a></p></div><div class="top"><p class="src"><a name="v:nameOccName" class="def">nameOccName</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="OccName.html#t:OccName">OccName</a></p></div><div class="top"><p class="src"><a name="v:nameModule" class="def">nameModule</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="Module.html#t:Module">Module</a></p></div><div class="top"><p class="src"><a name="v:nameModule_maybe" class="def">nameModule_maybe</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Module.html#t:Module">Module</a></p></div><div class="top"><p class="src"><a name="v:tidyNameOcc" class="def">tidyNameOcc</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="OccName.html#t:OccName">OccName</a> -&gt; <a href="Name.html#t:Name">Name</a></p></div><div class="top"><p class="src"><a name="v:hashName" class="def">hashName</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a></p></div><div class="top"><p class="src"><a name="v:localiseName" class="def">localiseName</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="Name.html#t:Name">Name</a></p><div class="doc"><p>Make the <code><a href="Name.html#t:Name">Name</a></code> into an internal name, regardless of what it was to begin with
</p></div></div><div class="top"><p class="src"><a name="v:mkLocalisedOccName" class="def">mkLocalisedOccName</a> :: <a href="Module.html#t:Module">Module</a> -&gt; (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="OccName.html#t:OccName">OccName</a> -&gt; <a href="OccName.html#t:OccName">OccName</a>) -&gt; <a href="Name.html#t:Name">Name</a> -&gt; <a href="OccName.html#t:OccName">OccName</a></p><div class="doc"><p>Create a localised variant of a name.  
</p><p>If the name is external, encode the original's module name to disambiguate.
</p></div></div><div class="top"><p class="src"><a name="v:nameSrcLoc" class="def">nameSrcLoc</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="SrcLoc.html#t:SrcLoc">SrcLoc</a></p></div><div class="top"><p class="src"><a name="v:nameSrcSpan" class="def">nameSrcSpan</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="SrcLoc.html#t:SrcSpan">SrcSpan</a></p></div><div class="top"><p class="src"><a name="v:pprNameDefnLoc" class="def">pprNameDefnLoc</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></p></div><div class="top"><p class="src"><a name="v:pprDefinedAt" class="def">pprDefinedAt</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></p></div><h2 id="g:4">Predicates on <code><a href="Name.html#t:Name">Name</a></code>s
</h2><div class="top"><p class="src"><a name="v:isSystemName" class="def">isSystemName</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:isInternalName" class="def">isInternalName</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:isExternalName" class="def">isExternalName</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:isTyVarName" class="def">isTyVarName</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:isTyConName" class="def">isTyConName</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:isDataConName" class="def">isDataConName</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:isValName" class="def">isValName</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:isVarName" class="def">isVarName</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:isWiredInName" class="def">isWiredInName</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:isBuiltInSyntax" class="def">isBuiltInSyntax</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:wiredInNameTyThing_maybe" class="def">wiredInNameTyThing_maybe</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Type.html#t:TyThing">TyThing</a></p></div><div class="top"><p class="src"><a name="v:nameIsLocalOrFrom" class="def">nameIsLocalOrFrom</a> :: <a href="Module.html#t:Module">Module</a> -&gt; <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:stableNameCmp" class="def">stableNameCmp</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="Name.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Ord.html#t:Ordering">Ordering</a></p></div><h1 id="g:5">Class <code><a href="Name.html#t:NamedThing">NamedThing</a></code> and overloaded friends
</h1><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:NamedThing" class="def">NamedThing</a> a  <span class="keyword">where</span></p><div class="doc"><p>A class allowing convenient access to the <code><a href="Name.html#t:Name">Name</a></code> of various datatypes
</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:getOccName" class="def">getOccName</a> :: a -&gt; <a href="OccName.html#t:OccName">OccName</a></p><p class="src"><a name="v:getName" class="def">getName</a> :: a -&gt; <a href="Name.html#t:Name">Name</a></p></div><div class="subs instances"><p id="control.i:NamedThing" class="caption collapser" onclick="toggleSection('i:NamedThing')">Instances</p><div id="section.i:NamedThing" class="show"><table><tr><td class="src"><a href="Name.html#t:NamedThing">NamedThing</a> <a href="Name.html#t:Name">Name</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Name.html#t:NamedThing">NamedThing</a> <a href="Type.html#t:TyThing">TyThing</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Name.html#t:NamedThing">NamedThing</a> <a href="Var.html#t:Var">Var</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Name.html#t:NamedThing">NamedThing</a> <a href="TyCon.html#t:TyCon">TyCon</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Name.html#t:NamedThing">NamedThing</a> <a href="Class.html#t:Class">Class</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Name.html#t:NamedThing">NamedThing</a> <a href="DataCon.html#t:DataCon">DataCon</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Name.html#t:NamedThing">NamedThing</a> <a href="TyCon.html#t:CoAxiom">CoAxiom</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Name.html#t:NamedThing">NamedThing</a> <a href="InstEnv.html#t:Instance">Instance</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Name.html#t:NamedThing">NamedThing</a> <a href="FamInstEnv.html#t:FamInst">FamInst</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:getSrcLoc" class="def">getSrcLoc</a> :: <a href="Name.html#t:NamedThing">NamedThing</a> a =&gt; a -&gt; <a href="SrcLoc.html#t:SrcLoc">SrcLoc</a></p></div><div class="top"><p class="src"><a name="v:getSrcSpan" class="def">getSrcSpan</a> :: <a href="Name.html#t:NamedThing">NamedThing</a> a =&gt; a -&gt; <a href="SrcLoc.html#t:SrcSpan">SrcSpan</a></p></div><div class="top"><p class="src"><a name="v:getOccString" class="def">getOccString</a> :: <a href="Name.html#t:NamedThing">NamedThing</a> a =&gt; a -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></p></div><div class="top"><p class="src"><a name="v:pprInfixName" class="def">pprInfixName</a> :: (<a href="Outputable.html#t:Outputable">Outputable</a> a, <a href="Name.html#t:NamedThing">NamedThing</a> a) =&gt; a -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></p></div><div class="top"><p class="src"><a name="v:pprPrefixName" class="def">pprPrefixName</a> :: (<a href="Outputable.html#t:Outputable">Outputable</a> a, <a href="Name.html#t:NamedThing">NamedThing</a> a) =&gt; a -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></p></div><div class="top"><p class="src"><a name="v:pprModulePrefix" class="def">pprModulePrefix</a> :: <a href="Outputable.html#t:PprStyle">PprStyle</a> -&gt; <a href="Module.html#t:Module">Module</a> -&gt; <a href="Name.html#t:Name">Name</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></p></div><div class="top"><p class="src">module <a href="OccName.html">OccName</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.11.0</p></div></body></html>