Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-release > by-pkgid > 6e204a966e8c42d976f99a1700ce5f20 > files > 3136

ghc-7.4.2-4.mga5.i586.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>Var</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_Var.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">Var</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">The main data type and synonyms
</a><ul><li><a href="#g:2">Taking <code><a href="Var.html#t:Var">Var</a></code>s apart
</a></li><li><a href="#g:3">Modifying <code><a href="Var.html#t:Var">Var</a></code>s
</a></li><li><a href="#g:4">Constructing, taking apart, modifying <code><a href="Var.html#t:Id">Id</a></code>s
</a></li><li><a href="#g:5">Predicates
</a></li><li><a href="#g:6">Constructing <code><a href="Var.html#t:TyVar">TyVar</a></code>s
</a></li><li><a href="#g:7">Taking <code><a href="Var.html#t:TyVar">TyVar</a></code>s apart
</a></li><li><a href="#g:8">Modifying <code><a href="Var.html#t:TyVar">TyVar</a></code>s
</a></li></ul></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>: see <a href="Name.html#name_types">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> is a synonym for the <code><a href="Id.html#t:Id">Id</a></code> type but it may additionally 
   potentially contain type variables, which have a <code><a href="Kind.html#t:Kind">Kind</a></code> 
   rather than a <code><a href="Type.html#t:Type">Type</a></code> and only contain some extra 
   details during typechecking.
</li></ul><p>These <code><a href="Var.html#t:Var">Var</a></code> names may either be global or local, see <a href="Var.html#globalvslocal">Var</a>
</p><p><a name="globalvslocal"></a>
 Global <code><a href="Var.html#t:Id">Id</a></code>s and <code><a href="Var.html#t:Var">Var</a></code>s are those that are imported or correspond 
    to a data constructor, primitive operation, or record selectors.
 Local <code><a href="Var.html#t:Id">Id</a></code>s and <code><a href="Var.html#t:Var">Var</a></code>s are those bound within an expression 
    (e.g. by a lambda) or at the top level of the module being compiled.
</p></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:Var">Var</a> </li><li class="src short"><span class="keyword">type</span> <a href="#t:TyVar">TyVar</a> = <a href="Var.html#t:Var">Var</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:CoVar">CoVar</a> = <a href="Var.html#t:Id">Id</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:Id">Id</a> = <a href="Var.html#t:Var">Var</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:KindVar">KindVar</a> = <a href="Var.html#t:Var">Var</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:DictId">DictId</a> = <a href="Var.html#t:EvId">EvId</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:DFunId">DFunId</a> = <a href="Var.html#t:Id">Id</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:EvVar">EvVar</a> = <a href="Var.html#t:EvId">EvId</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:EqVar">EqVar</a> = <a href="Var.html#t:EvId">EvId</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:EvId">EvId</a> = <a href="Var.html#t:Id">Id</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:IpId">IpId</a> = <a href="Var.html#t:EvId">EvId</a></li><li class="src short"><a href="#v:varName">varName</a> :: <a href="Var.html#t:Var">Var</a> -&gt; <a href="Name.html#t:Name">Name</a></li><li class="src short"><a href="#v:varUnique">varUnique</a> :: <a href="Var.html#t:Var">Var</a> -&gt; <a href="Unique.html#t:Unique">Unique</a></li><li class="src short"><a href="#v:varType">varType</a> :: <a href="Var.html#t:Var">Var</a> -&gt; <a href="Kind.html#t:Kind">Kind</a></li><li class="src short"><a href="#v:setVarName">setVarName</a> :: <a href="Var.html#t:Var">Var</a> -&gt; <a href="Name.html#t:Name">Name</a> -&gt; <a href="Var.html#t:Var">Var</a></li><li class="src short"><a href="#v:setVarUnique">setVarUnique</a> :: <a href="Var.html#t:Var">Var</a> -&gt; <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="Var.html#t:Var">Var</a></li><li class="src short"><a href="#v:setVarType">setVarType</a> :: <a href="Var.html#t:Id">Id</a> -&gt; <a href="Type.html#t:Type">Type</a> -&gt; <a href="Var.html#t:Id">Id</a></li><li class="src short"><a href="#v:mkGlobalVar">mkGlobalVar</a> :: <a href="IdInfo.html#t:IdDetails">IdDetails</a> -&gt; <a href="Name.html#t:Name">Name</a> -&gt; <a href="Type.html#t:Type">Type</a> -&gt; <a href="IdInfo.html#t:IdInfo">IdInfo</a> -&gt; <a href="Var.html#t:Id">Id</a></li><li class="src short"><a href="#v:mkLocalVar">mkLocalVar</a> :: <a href="IdInfo.html#t:IdDetails">IdDetails</a> -&gt; <a href="Name.html#t:Name">Name</a> -&gt; <a href="Type.html#t:Type">Type</a> -&gt; <a href="IdInfo.html#t:IdInfo">IdInfo</a> -&gt; <a href="Var.html#t:Id">Id</a></li><li class="src short"><a href="#v:mkExportedLocalVar">mkExportedLocalVar</a> :: <a href="IdInfo.html#t:IdDetails">IdDetails</a> -&gt; <a href="Name.html#t:Name">Name</a> -&gt; <a href="Type.html#t:Type">Type</a> -&gt; <a href="IdInfo.html#t:IdInfo">IdInfo</a> -&gt; <a href="Var.html#t:Id">Id</a></li><li class="src short"><a href="#v:mkCoVar">mkCoVar</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="Type.html#t:Type">Type</a> -&gt; <a href="Var.html#t:CoVar">CoVar</a></li><li class="src short"><a href="#v:idInfo">idInfo</a> :: <a href="Var.html#t:Id">Id</a> -&gt; <a href="IdInfo.html#t:IdInfo">IdInfo</a></li><li class="src short"><a href="#v:idDetails">idDetails</a> :: <a href="Var.html#t:Id">Id</a> -&gt; <a href="IdInfo.html#t:IdDetails">IdDetails</a></li><li class="src short"><a href="#v:lazySetIdInfo">lazySetIdInfo</a> :: <a href="Var.html#t:Id">Id</a> -&gt; <a href="IdInfo.html#t:IdInfo">IdInfo</a> -&gt; <a href="Var.html#t:Var">Var</a></li><li class="src short"><a href="#v:setIdDetails">setIdDetails</a> :: <a href="Var.html#t:Id">Id</a> -&gt; <a href="IdInfo.html#t:IdDetails">IdDetails</a> -&gt; <a href="Var.html#t:Id">Id</a></li><li class="src short"><a href="#v:globaliseId">globaliseId</a> :: <a href="Var.html#t:Id">Id</a> -&gt; <a href="Var.html#t:Id">Id</a></li><li class="src short"><a href="#v:setIdExported">setIdExported</a> :: <a href="Var.html#t:Id">Id</a> -&gt; <a href="Var.html#t:Id">Id</a></li><li class="src short"><a href="#v:setIdNotExported">setIdNotExported</a> :: <a href="Var.html#t:Id">Id</a> -&gt; <a href="Var.html#t:Id">Id</a></li><li class="src short"><a href="#v:isId">isId</a> :: <a href="Var.html#t:Var">Var</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isTyVar">isTyVar</a> :: <a href="Var.html#t:Var">Var</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isTcTyVar">isTcTyVar</a> :: <a href="Var.html#t:Var">Var</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isLocalVar">isLocalVar</a> :: <a href="Var.html#t:Var">Var</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isLocalId">isLocalId</a> :: <a href="Var.html#t:Var">Var</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isGlobalId">isGlobalId</a> :: <a href="Var.html#t:Var">Var</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isExportedId">isExportedId</a> :: <a href="Var.html#t:Var">Var</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:mustHaveLocalBinding">mustHaveLocalBinding</a> :: <a href="Var.html#t:Var">Var</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:mkTyVar">mkTyVar</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="Kind.html#t:Kind">Kind</a> -&gt; <a href="Var.html#t:TyVar">TyVar</a></li><li class="src short"><a href="#v:mkTcTyVar">mkTcTyVar</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="Kind.html#t:Kind">Kind</a> -&gt; <a href="TcType.html#t:TcTyVarDetails">TcTyVarDetails</a> -&gt; <a href="Var.html#t:TyVar">TyVar</a></li><li class="src short"><a href="#v:mkKindVar">mkKindVar</a> :: <a href="Name.html#t:Name">Name</a> -&gt; SuperKind -&gt; <a href="Var.html#t:KindVar">KindVar</a></li><li class="src short"><a href="#v:tyVarName">tyVarName</a> :: <a href="Var.html#t:TyVar">TyVar</a> -&gt; <a href="Name.html#t:Name">Name</a></li><li class="src short"><a href="#v:tyVarKind">tyVarKind</a> :: <a href="Var.html#t:TyVar">TyVar</a> -&gt; <a href="Kind.html#t:Kind">Kind</a></li><li class="src short"><a href="#v:tcTyVarDetails">tcTyVarDetails</a> :: <a href="Var.html#t:TyVar">TyVar</a> -&gt; <a href="TcType.html#t:TcTyVarDetails">TcTyVarDetails</a></li><li class="src short"><a href="#v:setTcTyVarDetails">setTcTyVarDetails</a> :: <a href="Var.html#t:TyVar">TyVar</a> -&gt; <a href="TcType.html#t:TcTyVarDetails">TcTyVarDetails</a> -&gt; <a href="Var.html#t:TyVar">TyVar</a></li><li class="src short"><a href="#v:setTyVarName">setTyVarName</a> :: <a href="Var.html#t:TyVar">TyVar</a> -&gt; <a href="Name.html#t:Name">Name</a> -&gt; <a href="Var.html#t:TyVar">TyVar</a></li><li class="src short"><a href="#v:setTyVarUnique">setTyVarUnique</a> :: <a href="Var.html#t:TyVar">TyVar</a> -&gt; <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="Var.html#t:TyVar">TyVar</a></li><li class="src short"><a href="#v:setTyVarKind">setTyVarKind</a> :: <a href="Var.html#t:TyVar">TyVar</a> -&gt; <a href="Kind.html#t:Kind">Kind</a> -&gt; <a href="Var.html#t:TyVar">TyVar</a></li><li class="src short"><a href="#v:updateTyVarKind">updateTyVarKind</a> :: (<a href="Kind.html#t:Kind">Kind</a> -&gt; <a href="Kind.html#t:Kind">Kind</a>) -&gt; <a href="Var.html#t:TyVar">TyVar</a> -&gt; <a href="Var.html#t:TyVar">TyVar</a></li><li class="src short"><a href="#v:updateTyVarKindM">updateTyVarKindM</a> :: <a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; (<a href="Kind.html#t:Kind">Kind</a> -&gt; m <a href="Kind.html#t:Kind">Kind</a>) -&gt; <a href="Var.html#t:TyVar">TyVar</a> -&gt; m <a href="Var.html#t:TyVar">TyVar</a></li></ul></div><div id="interface"><h1 id="g:1">The main data type and synonyms
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Var" class="def">Var</a>  </p><div class="doc"><p>Essentially a typed <code><a href="Name.html#t:Name">Name</a></code>, that may also contain some additional information
 about the <code><a href="Var.html#t:Var">Var</a></code> and it's use sites.
</p></div><div class="subs instances"><p id="control.i:Var" class="caption collapser" onclick="toggleSection('i:Var')">Instances</p><div id="section.i:Var" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Var.html#t:Var">Var</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="Var.html#t:Var">Var</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="Var.html#t:Var">Var</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Var.html#t:Var">Var</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="Var.html#t:Var">Var</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:OutputableBndr">OutputableBndr</a> <a href="Var.html#t:Var">Var</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="Var.html#t:Var">Var</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Unique.html#t:Uniquable">Uniquable</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="Var.html#t:Var">Var</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:TyVar" class="def">TyVar</a> = <a href="Var.html#t:Var">Var</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:CoVar" class="def">CoVar</a> = <a href="Var.html#t:Id">Id</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Id" class="def">Id</a> = <a href="Var.html#t:Var">Var</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:KindVar" class="def">KindVar</a> = <a href="Var.html#t:Var">Var</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:DictId" class="def">DictId</a> = <a href="Var.html#t:EvId">EvId</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:DFunId" class="def">DFunId</a> = <a href="Var.html#t:Id">Id</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:EvVar" class="def">EvVar</a> = <a href="Var.html#t:EvId">EvId</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:EqVar" class="def">EqVar</a> = <a href="Var.html#t:EvId">EvId</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:EvId" class="def">EvId</a> = <a href="Var.html#t:Id">Id</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:IpId" class="def">IpId</a> = <a href="Var.html#t:EvId">EvId</a></p></div><h2 id="g:2">Taking <code><a href="Var.html#t:Var">Var</a></code>s apart
</h2><div class="top"><p class="src"><a name="v:varName" class="def">varName</a> :: <a href="Var.html#t:Var">Var</a> -&gt; <a href="Name.html#t:Name">Name</a></p></div><div class="top"><p class="src"><a name="v:varUnique" class="def">varUnique</a> :: <a href="Var.html#t:Var">Var</a> -&gt; <a href="Unique.html#t:Unique">Unique</a></p></div><div class="top"><p class="src"><a name="v:varType" class="def">varType</a> :: <a href="Var.html#t:Var">Var</a> -&gt; <a href="Kind.html#t:Kind">Kind</a></p><div class="doc"><p>The type or kind of the <code><a href="Var.html#t:Var">Var</a></code> in question
</p></div></div><h2 id="g:3">Modifying <code><a href="Var.html#t:Var">Var</a></code>s
</h2><div class="top"><p class="src"><a name="v:setVarName" class="def">setVarName</a> :: <a href="Var.html#t:Var">Var</a> -&gt; <a href="Name.html#t:Name">Name</a> -&gt; <a href="Var.html#t:Var">Var</a></p></div><div class="top"><p class="src"><a name="v:setVarUnique" class="def">setVarUnique</a> :: <a href="Var.html#t:Var">Var</a> -&gt; <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="Var.html#t:Var">Var</a></p></div><div class="top"><p class="src"><a name="v:setVarType" class="def">setVarType</a> :: <a href="Var.html#t:Id">Id</a> -&gt; <a href="Type.html#t:Type">Type</a> -&gt; <a href="Var.html#t:Id">Id</a></p></div><h2 id="g:4">Constructing, taking apart, modifying <code><a href="Var.html#t:Id">Id</a></code>s
</h2><div class="top"><p class="src"><a name="v:mkGlobalVar" class="def">mkGlobalVar</a> :: <a href="IdInfo.html#t:IdDetails">IdDetails</a> -&gt; <a href="Name.html#t:Name">Name</a> -&gt; <a href="Type.html#t:Type">Type</a> -&gt; <a href="IdInfo.html#t:IdInfo">IdInfo</a> -&gt; <a href="Var.html#t:Id">Id</a></p></div><div class="top"><p class="src"><a name="v:mkLocalVar" class="def">mkLocalVar</a> :: <a href="IdInfo.html#t:IdDetails">IdDetails</a> -&gt; <a href="Name.html#t:Name">Name</a> -&gt; <a href="Type.html#t:Type">Type</a> -&gt; <a href="IdInfo.html#t:IdInfo">IdInfo</a> -&gt; <a href="Var.html#t:Id">Id</a></p></div><div class="top"><p class="src"><a name="v:mkExportedLocalVar" class="def">mkExportedLocalVar</a> :: <a href="IdInfo.html#t:IdDetails">IdDetails</a> -&gt; <a href="Name.html#t:Name">Name</a> -&gt; <a href="Type.html#t:Type">Type</a> -&gt; <a href="IdInfo.html#t:IdInfo">IdInfo</a> -&gt; <a href="Var.html#t:Id">Id</a></p><div class="doc"><p>Exported <code><a href="Var.html#t:Var">Var</a></code>s will not be removed as dead code
</p></div></div><div class="top"><p class="src"><a name="v:mkCoVar" class="def">mkCoVar</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="Type.html#t:Type">Type</a> -&gt; <a href="Var.html#t:CoVar">CoVar</a></p></div><div class="top"><p class="src"><a name="v:idInfo" class="def">idInfo</a> :: <a href="Var.html#t:Id">Id</a> -&gt; <a href="IdInfo.html#t:IdInfo">IdInfo</a></p></div><div class="top"><p class="src"><a name="v:idDetails" class="def">idDetails</a> :: <a href="Var.html#t:Id">Id</a> -&gt; <a href="IdInfo.html#t:IdDetails">IdDetails</a></p></div><div class="top"><p class="src"><a name="v:lazySetIdInfo" class="def">lazySetIdInfo</a> :: <a href="Var.html#t:Id">Id</a> -&gt; <a href="IdInfo.html#t:IdInfo">IdInfo</a> -&gt; <a href="Var.html#t:Var">Var</a></p></div><div class="top"><p class="src"><a name="v:setIdDetails" class="def">setIdDetails</a> :: <a href="Var.html#t:Id">Id</a> -&gt; <a href="IdInfo.html#t:IdDetails">IdDetails</a> -&gt; <a href="Var.html#t:Id">Id</a></p></div><div class="top"><p class="src"><a name="v:globaliseId" class="def">globaliseId</a> :: <a href="Var.html#t:Id">Id</a> -&gt; <a href="Var.html#t:Id">Id</a></p><div class="doc"><p>If it's a local, make it global
</p></div></div><div class="top"><p class="src"><a name="v:setIdExported" class="def">setIdExported</a> :: <a href="Var.html#t:Id">Id</a> -&gt; <a href="Var.html#t:Id">Id</a></p><div class="doc"><p>Exports the given local <code><a href="Var.html#t:Id">Id</a></code>. Can also be called on global <code><a href="Var.html#t:Id">Id</a></code>s, such as data constructors
 and class operations, which are born as global <code><a href="Var.html#t:Id">Id</a></code>s and automatically exported
</p></div></div><div class="top"><p class="src"><a name="v:setIdNotExported" class="def">setIdNotExported</a> :: <a href="Var.html#t:Id">Id</a> -&gt; <a href="Var.html#t:Id">Id</a></p><div class="doc"><p>We can only do this to LocalIds
</p></div></div><h2 id="g:5">Predicates
</h2><div class="top"><p class="src"><a name="v:isId" class="def">isId</a> :: <a href="Var.html#t:Var">Var</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:isTyVar" class="def">isTyVar</a> :: <a href="Var.html#t:Var">Var</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:isTcTyVar" class="def">isTcTyVar</a> :: <a href="Var.html#t:Var">Var</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:isLocalVar" class="def">isLocalVar</a> :: <a href="Var.html#t:Var">Var</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p><div class="doc"><p><code><a href="Var.html#v:isLocalVar">isLocalVar</a></code> returns <code>True</code> for type variables as well as local <code><a href="Var.html#t:Id">Id</a></code>s
 These are the variables that we need to pay attention to when finding free
 variables, or doing dependency analysis.
</p></div></div><div class="top"><p class="src"><a name="v:isLocalId" class="def">isLocalId</a> :: <a href="Var.html#t:Var">Var</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:isGlobalId" class="def">isGlobalId</a> :: <a href="Var.html#t:Var">Var</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:isExportedId" class="def">isExportedId</a> :: <a href="Var.html#t:Var">Var</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p><div class="doc"><p><code>isExportedIdVar</code> means &quot;don't throw this away&quot;
</p></div></div><div class="top"><p class="src"><a name="v:mustHaveLocalBinding" class="def">mustHaveLocalBinding</a> :: <a href="Var.html#t:Var">Var</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p><div class="doc"><p><code><a href="Var.html#v:mustHaveLocalBinding">mustHaveLocalBinding</a></code> returns <code>True</code> of <code><a href="Var.html#t:Id">Id</a></code>s and <code><a href="Var.html#t:TyVar">TyVar</a></code>s
 that must have a binding in this module.  The converse
 is not quite right: there are some global <code><a href="Var.html#t:Id">Id</a></code>s that must have
 bindings, such as record selectors.  But that doesn't matter,
 because it's only used for assertions
</p></div></div><h2 id="g:6">Constructing <code><a href="Var.html#t:TyVar">TyVar</a></code>s
</h2><div class="top"><p class="src"><a name="v:mkTyVar" class="def">mkTyVar</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="Kind.html#t:Kind">Kind</a> -&gt; <a href="Var.html#t:TyVar">TyVar</a></p></div><div class="top"><p class="src"><a name="v:mkTcTyVar" class="def">mkTcTyVar</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="Kind.html#t:Kind">Kind</a> -&gt; <a href="TcType.html#t:TcTyVarDetails">TcTyVarDetails</a> -&gt; <a href="Var.html#t:TyVar">TyVar</a></p></div><div class="top"><p class="src"><a name="v:mkKindVar" class="def">mkKindVar</a> :: <a href="Name.html#t:Name">Name</a> -&gt; SuperKind -&gt; <a href="Var.html#t:KindVar">KindVar</a></p></div><h2 id="g:7">Taking <code><a href="Var.html#t:TyVar">TyVar</a></code>s apart
</h2><div class="top"><p class="src"><a name="v:tyVarName" class="def">tyVarName</a> :: <a href="Var.html#t:TyVar">TyVar</a> -&gt; <a href="Name.html#t:Name">Name</a></p></div><div class="top"><p class="src"><a name="v:tyVarKind" class="def">tyVarKind</a> :: <a href="Var.html#t:TyVar">TyVar</a> -&gt; <a href="Kind.html#t:Kind">Kind</a></p></div><div class="top"><p class="src"><a name="v:tcTyVarDetails" class="def">tcTyVarDetails</a> :: <a href="Var.html#t:TyVar">TyVar</a> -&gt; <a href="TcType.html#t:TcTyVarDetails">TcTyVarDetails</a></p></div><div class="top"><p class="src"><a name="v:setTcTyVarDetails" class="def">setTcTyVarDetails</a> :: <a href="Var.html#t:TyVar">TyVar</a> -&gt; <a href="TcType.html#t:TcTyVarDetails">TcTyVarDetails</a> -&gt; <a href="Var.html#t:TyVar">TyVar</a></p></div><h2 id="g:8">Modifying <code><a href="Var.html#t:TyVar">TyVar</a></code>s
</h2><div class="top"><p class="src"><a name="v:setTyVarName" class="def">setTyVarName</a> :: <a href="Var.html#t:TyVar">TyVar</a> -&gt; <a href="Name.html#t:Name">Name</a> -&gt; <a href="Var.html#t:TyVar">TyVar</a></p></div><div class="top"><p class="src"><a name="v:setTyVarUnique" class="def">setTyVarUnique</a> :: <a href="Var.html#t:TyVar">TyVar</a> -&gt; <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="Var.html#t:TyVar">TyVar</a></p></div><div class="top"><p class="src"><a name="v:setTyVarKind" class="def">setTyVarKind</a> :: <a href="Var.html#t:TyVar">TyVar</a> -&gt; <a href="Kind.html#t:Kind">Kind</a> -&gt; <a href="Var.html#t:TyVar">TyVar</a></p></div><div class="top"><p class="src"><a name="v:updateTyVarKind" class="def">updateTyVarKind</a> :: (<a href="Kind.html#t:Kind">Kind</a> -&gt; <a href="Kind.html#t:Kind">Kind</a>) -&gt; <a href="Var.html#t:TyVar">TyVar</a> -&gt; <a href="Var.html#t:TyVar">TyVar</a></p></div><div class="top"><p class="src"><a name="v:updateTyVarKindM" class="def">updateTyVarKindM</a> :: <a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; (<a href="Kind.html#t:Kind">Kind</a> -&gt; m <a href="Kind.html#t:Kind">Kind</a>) -&gt; <a href="Var.html#t:TyVar">TyVar</a> -&gt; m <a href="Var.html#t:TyVar">TyVar</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>