Sophie

Sophie

distrib > Mageia > 3 > x86_64 > by-pkgid > d5d42515f78bdb3a5381de09f2cf4125 > files > 1130

ghc-doc-7.4.2-2.mga3.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>VarEnv</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_VarEnv.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">VarEnv</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Var, Id and TyVar environments (maps)
</a><ul><li><a href="#g:2">Manipulating these environments
</a></li></ul></li><li><a href="#g:3">The InScopeSet type
</a><ul><li><a href="#g:4">Operations on InScopeSets
</a></li></ul></li><li><a href="#g:5">The RnEnv2 type
</a><ul><li><a href="#g:6">Operations on RnEnv2s
</a></li></ul></li><li><a href="#g:7">TidyEnv and its operation
</a></li></ul></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">type</span> <a href="#t:VarEnv">VarEnv</a> elt = <a href="UniqFM.html#t:UniqFM">UniqFM</a> elt</li><li class="src short"><span class="keyword">type</span> <a href="#t:IdEnv">IdEnv</a> elt = <a href="VarEnv.html#t:VarEnv">VarEnv</a> elt</li><li class="src short"><span class="keyword">type</span> <a href="#t:TyVarEnv">TyVarEnv</a> elt = <a href="VarEnv.html#t:VarEnv">VarEnv</a> elt</li><li class="src short"><span class="keyword">type</span> <a href="#t:CoVarEnv">CoVarEnv</a> elt = <a href="VarEnv.html#t:VarEnv">VarEnv</a> elt</li><li class="src short"><a href="#v:emptyVarEnv">emptyVarEnv</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</li><li class="src short"><a href="#v:unitVarEnv">unitVarEnv</a> ::  <a href="Var.html#t:Var">Var</a> -&gt; a -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</li><li class="src short"><a href="#v:mkVarEnv">mkVarEnv</a> ::  [(<a href="Var.html#t:Var">Var</a>, a)] -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</li><li class="src short"><a href="#v:elemVarEnv">elemVarEnv</a> ::  <a href="Var.html#t:Var">Var</a> -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:varEnvElts">varEnvElts</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; [a]</li><li class="src short"><a href="#v:varEnvKeys">varEnvKeys</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; [<a href="Unique.html#t:Unique">Unique</a>]</li><li class="src short"><a href="#v:extendVarEnv">extendVarEnv</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="Var.html#t:Var">Var</a> -&gt; a -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</li><li class="src short"><a href="#v:extendVarEnv_C">extendVarEnv_C</a> ::  (a -&gt; a -&gt; a) -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="Var.html#t:Var">Var</a> -&gt; a -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</li><li class="src short"><a href="#v:extendVarEnv_Acc">extendVarEnv_Acc</a> ::  (a -&gt; b -&gt; b) -&gt; (a -&gt; b) -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> b -&gt; <a href="Var.html#t:Var">Var</a> -&gt; a -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> b</li><li class="src short"><a href="#v:extendVarEnvList">extendVarEnvList</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; [(<a href="Var.html#t:Var">Var</a>, a)] -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</li><li class="src short"><a href="#v:plusVarEnv">plusVarEnv</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</li><li class="src short"><a href="#v:plusVarEnv_C">plusVarEnv_C</a> ::  (a -&gt; a -&gt; a) -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</li><li class="src short"><a href="#v:alterVarEnv">alterVarEnv</a> ::  (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</li><li class="src short"><a href="#v:delVarEnvList">delVarEnvList</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; [<a href="Var.html#t:Var">Var</a>] -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</li><li class="src short"><a href="#v:delVarEnv">delVarEnv</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</li><li class="src short"><a href="#v:minusVarEnv">minusVarEnv</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> b -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</li><li class="src short"><a href="#v:intersectsVarEnv">intersectsVarEnv</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:lookupVarEnv">lookupVarEnv</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a</li><li class="src short"><a href="#v:lookupVarEnv_NF">lookupVarEnv_NF</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="Var.html#t:Var">Var</a> -&gt; a</li><li class="src short"><a href="#v:lookupWithDefaultVarEnv">lookupWithDefaultVarEnv</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; a -&gt; <a href="Var.html#t:Var">Var</a> -&gt; a</li><li class="src short"><a href="#v:mapVarEnv">mapVarEnv</a> ::  (a -&gt; b) -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> b</li><li class="src short"><a href="#v:zipVarEnv">zipVarEnv</a> ::  [<a href="Var.html#t:Var">Var</a>] -&gt; [a] -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</li><li class="src short"><a href="#v:modifyVarEnv">modifyVarEnv</a> ::  (a -&gt; a) -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</li><li class="src short"><a href="#v:modifyVarEnv_Directly">modifyVarEnv_Directly</a> ::  (a -&gt; a) -&gt; <a href="UniqFM.html#t:UniqFM">UniqFM</a> a -&gt; <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="UniqFM.html#t:UniqFM">UniqFM</a> a</li><li class="src short"><a href="#v:isEmptyVarEnv">isEmptyVarEnv</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:foldVarEnv">foldVarEnv</a> ::  (a -&gt; b -&gt; b) -&gt; b -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; b</li><li class="src short"><a href="#v:elemVarEnvByKey">elemVarEnvByKey</a> ::  <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:lookupVarEnv_Directly">lookupVarEnv_Directly</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a</li><li class="src short"><a href="#v:filterVarEnv_Directly">filterVarEnv_Directly</a> ::  (<a href="Unique.html#t:Unique">Unique</a> -&gt; a -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</li><li class="src short"><a href="#v:restrictVarEnv">restrictVarEnv</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="VarSet.html#t:VarSet">VarSet</a> -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</li><li class="src short"><span class="keyword">data</span>  <a href="#t:InScopeSet">InScopeSet</a> </li><li class="src short"><a href="#v:emptyInScopeSet">emptyInScopeSet</a> :: <a href="VarEnv.html#t:InScopeSet">InScopeSet</a></li><li class="src short"><a href="#v:mkInScopeSet">mkInScopeSet</a> :: <a href="VarEnv.html#t:VarEnv">VarEnv</a> <a href="Var.html#t:Var">Var</a> -&gt; <a href="VarEnv.html#t:InScopeSet">InScopeSet</a></li><li class="src short"><a href="#v:delInScopeSet">delInScopeSet</a> :: <a href="VarEnv.html#t:InScopeSet">InScopeSet</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="VarEnv.html#t:InScopeSet">InScopeSet</a></li><li class="src short"><a href="#v:extendInScopeSet">extendInScopeSet</a> :: <a href="VarEnv.html#t:InScopeSet">InScopeSet</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="VarEnv.html#t:InScopeSet">InScopeSet</a></li><li class="src short"><a href="#v:extendInScopeSetList">extendInScopeSetList</a> :: <a href="VarEnv.html#t:InScopeSet">InScopeSet</a> -&gt; [<a href="Var.html#t:Var">Var</a>] -&gt; <a href="VarEnv.html#t:InScopeSet">InScopeSet</a></li><li class="src short"><a href="#v:extendInScopeSetSet">extendInScopeSetSet</a> :: <a href="VarEnv.html#t:InScopeSet">InScopeSet</a> -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> <a href="Var.html#t:Var">Var</a> -&gt; <a href="VarEnv.html#t:InScopeSet">InScopeSet</a></li><li class="src short"><a href="#v:getInScopeVars">getInScopeVars</a> :: <a href="VarEnv.html#t:InScopeSet">InScopeSet</a> -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> <a href="Var.html#t:Var">Var</a></li><li class="src short"><a href="#v:lookupInScope">lookupInScope</a> :: <a href="VarEnv.html#t:InScopeSet">InScopeSet</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Var.html#t:Var">Var</a></li><li class="src short"><a href="#v:lookupInScope_Directly">lookupInScope_Directly</a> :: <a href="VarEnv.html#t:InScopeSet">InScopeSet</a> -&gt; <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Var.html#t:Var">Var</a></li><li class="src short"><a href="#v:unionInScope">unionInScope</a> :: <a href="VarEnv.html#t:InScopeSet">InScopeSet</a> -&gt; <a href="VarEnv.html#t:InScopeSet">InScopeSet</a> -&gt; <a href="VarEnv.html#t:InScopeSet">InScopeSet</a></li><li class="src short"><a href="#v:elemInScopeSet">elemInScopeSet</a> :: <a href="Var.html#t:Var">Var</a> -&gt; <a href="VarEnv.html#t:InScopeSet">InScopeSet</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:uniqAway">uniqAway</a> :: <a href="VarEnv.html#t:InScopeSet">InScopeSet</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="Var.html#t:Var">Var</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:RnEnv2">RnEnv2</a> </li><li class="src short"><a href="#v:mkRnEnv2">mkRnEnv2</a> :: <a href="VarEnv.html#t:InScopeSet">InScopeSet</a> -&gt; <a href="VarEnv.html#t:RnEnv2">RnEnv2</a></li><li class="src short"><a href="#v:rnBndr2">rnBndr2</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="VarEnv.html#t:RnEnv2">RnEnv2</a></li><li class="src short"><a href="#v:rnBndrs2">rnBndrs2</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; [<a href="Var.html#t:Var">Var</a>] -&gt; [<a href="Var.html#t:Var">Var</a>] -&gt; <a href="VarEnv.html#t:RnEnv2">RnEnv2</a></li><li class="src short"><a href="#v:rnOccL">rnOccL</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="Var.html#t:Var">Var</a></li><li class="src short"><a href="#v:rnOccR">rnOccR</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="Var.html#t:Var">Var</a></li><li class="src short"><a href="#v:inRnEnvL">inRnEnvL</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <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:inRnEnvR">inRnEnvR</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <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:rnOccL_maybe">rnOccL_maybe</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Var.html#t:Var">Var</a></li><li class="src short"><a href="#v:rnOccR_maybe">rnOccR_maybe</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Var.html#t:Var">Var</a></li><li class="src short"><a href="#v:rnBndrL">rnBndrL</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; (<a href="VarEnv.html#t:RnEnv2">RnEnv2</a>, <a href="Var.html#t:Var">Var</a>)</li><li class="src short"><a href="#v:rnBndrR">rnBndrR</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; (<a href="VarEnv.html#t:RnEnv2">RnEnv2</a>, <a href="Var.html#t:Var">Var</a>)</li><li class="src short"><a href="#v:nukeRnEnvL">nukeRnEnvL</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="VarEnv.html#t:RnEnv2">RnEnv2</a></li><li class="src short"><a href="#v:nukeRnEnvR">nukeRnEnvR</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="VarEnv.html#t:RnEnv2">RnEnv2</a></li><li class="src short"><a href="#v:delBndrL">delBndrL</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="VarEnv.html#t:RnEnv2">RnEnv2</a></li><li class="src short"><a href="#v:delBndrR">delBndrR</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="VarEnv.html#t:RnEnv2">RnEnv2</a></li><li class="src short"><a href="#v:delBndrsL">delBndrsL</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; [<a href="Var.html#t:Var">Var</a>] -&gt; <a href="VarEnv.html#t:RnEnv2">RnEnv2</a></li><li class="src short"><a href="#v:delBndrsR">delBndrsR</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; [<a href="Var.html#t:Var">Var</a>] -&gt; <a href="VarEnv.html#t:RnEnv2">RnEnv2</a></li><li class="src short"><a href="#v:addRnInScopeSet">addRnInScopeSet</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> <a href="Var.html#t:Var">Var</a> -&gt; <a href="VarEnv.html#t:RnEnv2">RnEnv2</a></li><li class="src short"><a href="#v:rnEtaL">rnEtaL</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; (<a href="VarEnv.html#t:RnEnv2">RnEnv2</a>, <a href="Var.html#t:Var">Var</a>)</li><li class="src short"><a href="#v:rnEtaR">rnEtaR</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; (<a href="VarEnv.html#t:RnEnv2">RnEnv2</a>, <a href="Var.html#t:Var">Var</a>)</li><li class="src short"><a href="#v:rnInScope">rnInScope</a> :: <a href="Var.html#t:Var">Var</a> -&gt; <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:rnInScopeSet">rnInScopeSet</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="VarEnv.html#t:InScopeSet">InScopeSet</a></li><li class="src short"><a href="#v:lookupRnInScope">lookupRnInScope</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="Var.html#t:Var">Var</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:TidyEnv">TidyEnv</a> = (<a href="OccName.html#t:TidyOccEnv">TidyOccEnv</a>, <a href="VarEnv.html#t:VarEnv">VarEnv</a> <a href="Var.html#t:Var">Var</a>)</li><li class="src short"><a href="#v:emptyTidyEnv">emptyTidyEnv</a> :: <a href="VarEnv.html#t:TidyEnv">TidyEnv</a></li></ul></div><div id="interface"><h1 id="g:1">Var, Id and TyVar environments (maps)
</h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:VarEnv" class="def">VarEnv</a> elt = <a href="UniqFM.html#t:UniqFM">UniqFM</a> elt</p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:IdEnv" class="def">IdEnv</a> elt = <a href="VarEnv.html#t:VarEnv">VarEnv</a> elt</p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:TyVarEnv" class="def">TyVarEnv</a> elt = <a href="VarEnv.html#t:VarEnv">VarEnv</a> elt</p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:CoVarEnv" class="def">CoVarEnv</a> elt = <a href="VarEnv.html#t:VarEnv">VarEnv</a> elt</p></div><h2 id="g:2">Manipulating these environments
</h2><div class="top"><p class="src"><a name="v:emptyVarEnv" class="def">emptyVarEnv</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</p></div><div class="top"><p class="src"><a name="v:unitVarEnv" class="def">unitVarEnv</a> ::  <a href="Var.html#t:Var">Var</a> -&gt; a -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</p></div><div class="top"><p class="src"><a name="v:mkVarEnv" class="def">mkVarEnv</a> ::  [(<a href="Var.html#t:Var">Var</a>, a)] -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</p></div><div class="top"><p class="src"><a name="v:elemVarEnv" class="def">elemVarEnv</a> ::  <a href="Var.html#t:Var">Var</a> -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> 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:varEnvElts" class="def">varEnvElts</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; [a]</p></div><div class="top"><p class="src"><a name="v:varEnvKeys" class="def">varEnvKeys</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; [<a href="Unique.html#t:Unique">Unique</a>]</p></div><div class="top"><p class="src"><a name="v:extendVarEnv" class="def">extendVarEnv</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="Var.html#t:Var">Var</a> -&gt; a -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</p></div><div class="top"><p class="src"><a name="v:extendVarEnv_C" class="def">extendVarEnv_C</a> ::  (a -&gt; a -&gt; a) -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="Var.html#t:Var">Var</a> -&gt; a -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</p></div><div class="top"><p class="src"><a name="v:extendVarEnv_Acc" class="def">extendVarEnv_Acc</a> ::  (a -&gt; b -&gt; b) -&gt; (a -&gt; b) -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> b -&gt; <a href="Var.html#t:Var">Var</a> -&gt; a -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> b</p></div><div class="top"><p class="src"><a name="v:extendVarEnvList" class="def">extendVarEnvList</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; [(<a href="Var.html#t:Var">Var</a>, a)] -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</p></div><div class="top"><p class="src"><a name="v:plusVarEnv" class="def">plusVarEnv</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</p></div><div class="top"><p class="src"><a name="v:plusVarEnv_C" class="def">plusVarEnv_C</a> ::  (a -&gt; a -&gt; a) -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</p></div><div class="top"><p class="src"><a name="v:alterVarEnv" class="def">alterVarEnv</a> ::  (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</p></div><div class="top"><p class="src"><a name="v:delVarEnvList" class="def">delVarEnvList</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; [<a href="Var.html#t:Var">Var</a>] -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</p></div><div class="top"><p class="src"><a name="v:delVarEnv" class="def">delVarEnv</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</p></div><div class="top"><p class="src"><a name="v:minusVarEnv" class="def">minusVarEnv</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> b -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</p></div><div class="top"><p class="src"><a name="v:intersectsVarEnv" class="def">intersectsVarEnv</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> 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:lookupVarEnv" class="def">lookupVarEnv</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a</p></div><div class="top"><p class="src"><a name="v:lookupVarEnv_NF" class="def">lookupVarEnv_NF</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="Var.html#t:Var">Var</a> -&gt; a</p></div><div class="top"><p class="src"><a name="v:lookupWithDefaultVarEnv" class="def">lookupWithDefaultVarEnv</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; a -&gt; <a href="Var.html#t:Var">Var</a> -&gt; a</p></div><div class="top"><p class="src"><a name="v:mapVarEnv" class="def">mapVarEnv</a> ::  (a -&gt; b) -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> b</p></div><div class="top"><p class="src"><a name="v:zipVarEnv" class="def">zipVarEnv</a> ::  [<a href="Var.html#t:Var">Var</a>] -&gt; [a] -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</p></div><div class="top"><p class="src"><a name="v:modifyVarEnv" class="def">modifyVarEnv</a> ::  (a -&gt; a) -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</p></div><div class="top"><p class="src"><a name="v:modifyVarEnv_Directly" class="def">modifyVarEnv_Directly</a> ::  (a -&gt; a) -&gt; <a href="UniqFM.html#t:UniqFM">UniqFM</a> a -&gt; <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="UniqFM.html#t:UniqFM">UniqFM</a> a</p></div><div class="top"><p class="src"><a name="v:isEmptyVarEnv" class="def">isEmptyVarEnv</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> 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:foldVarEnv" class="def">foldVarEnv</a> ::  (a -&gt; b -&gt; b) -&gt; b -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; b</p></div><div class="top"><p class="src"><a name="v:elemVarEnvByKey" class="def">elemVarEnvByKey</a> ::  <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> 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:lookupVarEnv_Directly" class="def">lookupVarEnv_Directly</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a</p></div><div class="top"><p class="src"><a name="v:filterVarEnv_Directly" class="def">filterVarEnv_Directly</a> ::  (<a href="Unique.html#t:Unique">Unique</a> -&gt; a -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</p></div><div class="top"><p class="src"><a name="v:restrictVarEnv" class="def">restrictVarEnv</a> ::  <a href="VarEnv.html#t:VarEnv">VarEnv</a> a -&gt; <a href="VarSet.html#t:VarSet">VarSet</a> -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> a</p></div><h1 id="g:3">The InScopeSet type
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:InScopeSet" class="def">InScopeSet</a>  </p><div class="doc"><p>A set of variables that are in scope at some point
</p></div><div class="subs instances"><p id="control.i:InScopeSet" class="caption collapser" onclick="toggleSection('i:InScopeSet')">Instances</p><div id="section.i:InScopeSet" class="show"><table><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="VarEnv.html#t:InScopeSet">InScopeSet</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h2 id="g:4">Operations on InScopeSets
</h2><div class="top"><p class="src"><a name="v:emptyInScopeSet" class="def">emptyInScopeSet</a> :: <a href="VarEnv.html#t:InScopeSet">InScopeSet</a></p></div><div class="top"><p class="src"><a name="v:mkInScopeSet" class="def">mkInScopeSet</a> :: <a href="VarEnv.html#t:VarEnv">VarEnv</a> <a href="Var.html#t:Var">Var</a> -&gt; <a href="VarEnv.html#t:InScopeSet">InScopeSet</a></p></div><div class="top"><p class="src"><a name="v:delInScopeSet" class="def">delInScopeSet</a> :: <a href="VarEnv.html#t:InScopeSet">InScopeSet</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="VarEnv.html#t:InScopeSet">InScopeSet</a></p></div><div class="top"><p class="src"><a name="v:extendInScopeSet" class="def">extendInScopeSet</a> :: <a href="VarEnv.html#t:InScopeSet">InScopeSet</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="VarEnv.html#t:InScopeSet">InScopeSet</a></p></div><div class="top"><p class="src"><a name="v:extendInScopeSetList" class="def">extendInScopeSetList</a> :: <a href="VarEnv.html#t:InScopeSet">InScopeSet</a> -&gt; [<a href="Var.html#t:Var">Var</a>] -&gt; <a href="VarEnv.html#t:InScopeSet">InScopeSet</a></p></div><div class="top"><p class="src"><a name="v:extendInScopeSetSet" class="def">extendInScopeSetSet</a> :: <a href="VarEnv.html#t:InScopeSet">InScopeSet</a> -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> <a href="Var.html#t:Var">Var</a> -&gt; <a href="VarEnv.html#t:InScopeSet">InScopeSet</a></p></div><div class="top"><p class="src"><a name="v:getInScopeVars" class="def">getInScopeVars</a> :: <a href="VarEnv.html#t:InScopeSet">InScopeSet</a> -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> <a href="Var.html#t:Var">Var</a></p></div><div class="top"><p class="src"><a name="v:lookupInScope" class="def">lookupInScope</a> :: <a href="VarEnv.html#t:InScopeSet">InScopeSet</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Var.html#t:Var">Var</a></p><div class="doc"><p>Look up a variable the <code><a href="VarEnv.html#t:InScopeSet">InScopeSet</a></code>.  This lets you map from 
 the variable's identity (unique) to its full value.
</p></div></div><div class="top"><p class="src"><a name="v:lookupInScope_Directly" class="def">lookupInScope_Directly</a> :: <a href="VarEnv.html#t:InScopeSet">InScopeSet</a> -&gt; <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Var.html#t:Var">Var</a></p></div><div class="top"><p class="src"><a name="v:unionInScope" class="def">unionInScope</a> :: <a href="VarEnv.html#t:InScopeSet">InScopeSet</a> -&gt; <a href="VarEnv.html#t:InScopeSet">InScopeSet</a> -&gt; <a href="VarEnv.html#t:InScopeSet">InScopeSet</a></p></div><div class="top"><p class="src"><a name="v:elemInScopeSet" class="def">elemInScopeSet</a> :: <a href="Var.html#t:Var">Var</a> -&gt; <a href="VarEnv.html#t:InScopeSet">InScopeSet</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:uniqAway" class="def">uniqAway</a> :: <a href="VarEnv.html#t:InScopeSet">InScopeSet</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="Var.html#t:Var">Var</a></p><div class="doc"><p><code>uniqAway in_scope v</code> finds a unique that is not used in the
 in-scope set, and gives that to v. 
</p></div></div><h1 id="g:5">The RnEnv2 type
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:RnEnv2" class="def">RnEnv2</a>  </p><div class="doc"><p>When we are comparing (or matching) types or terms, we are faced with 
 &quot;going under&quot; corresponding binders.  E.g. when comparing:
</p><pre> \x. e1	~   \y. e2
</pre><p>Basically we want to rename [<code>x</code> -&gt; <code>y</code>] or [<code>y</code> -&gt; <code>x</code>], but there are lots of 
 things we must be careful of.  In particular, <code>x</code> might be free in <code>e2</code>, or
 y in <code>e1</code>.  So the idea is that we come up with a fresh binder that is free
 in neither, and rename <code>x</code> and <code>y</code> respectively.  That means we must maintain:
</p><ol><li> A renaming for the left-hand expression
</li><li> A renaming for the right-hand expressions
</li><li> An in-scope set
</li></ol><p>Furthermore, when matching, we want to be able to have an 'occurs check',
 to prevent:
</p><pre> \x. f   ~   \y. y
</pre><p>matching with [<code>f</code> -&gt; <code>y</code>].  So for each expression we want to know that set of
 locally-bound variables. That is precisely the domain of the mappings 1.
 and 2., but we must ensure that we always extend the mappings as we go in.
</p><p>All of this information is bundled up in the <code><a href="VarEnv.html#t:RnEnv2">RnEnv2</a></code>
</p></div></div><h2 id="g:6">Operations on RnEnv2s
</h2><div class="top"><p class="src"><a name="v:mkRnEnv2" class="def">mkRnEnv2</a> :: <a href="VarEnv.html#t:InScopeSet">InScopeSet</a> -&gt; <a href="VarEnv.html#t:RnEnv2">RnEnv2</a></p></div><div class="top"><p class="src"><a name="v:rnBndr2" class="def">rnBndr2</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="VarEnv.html#t:RnEnv2">RnEnv2</a></p><div class="doc"><p><code>rnBndr2 env bL bR</code> goes under a binder <code>bL</code> in the Left term,
 		         and binder <code>bR</code> in the Right term.
 It finds a new binder, <code>new_b</code>,
 and returns an environment mapping <code>bL -&gt; new_b</code> and <code>bR -&gt; new_b</code>
</p></div></div><div class="top"><p class="src"><a name="v:rnBndrs2" class="def">rnBndrs2</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; [<a href="Var.html#t:Var">Var</a>] -&gt; [<a href="Var.html#t:Var">Var</a>] -&gt; <a href="VarEnv.html#t:RnEnv2">RnEnv2</a></p><div class="doc"><p>Applies <code><a href="VarEnv.html#v:rnBndr2">rnBndr2</a></code> to several variables: the two variable lists must be of equal length
</p></div></div><div class="top"><p class="src"><a name="v:rnOccL" class="def">rnOccL</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="Var.html#t:Var">Var</a></p><div class="doc"><p>Look up the renaming of an occurrence in the left or right term
</p></div></div><div class="top"><p class="src"><a name="v:rnOccR" class="def">rnOccR</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="Var.html#t:Var">Var</a></p><div class="doc"><p>Look up the renaming of an occurrence in the left or right term
</p></div></div><div class="top"><p class="src"><a name="v:inRnEnvL" class="def">inRnEnvL</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <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>Tells whether a variable is locally bound
</p></div></div><div class="top"><p class="src"><a name="v:inRnEnvR" class="def">inRnEnvR</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <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>Tells whether a variable is locally bound
</p></div></div><div class="top"><p class="src"><a name="v:rnOccL_maybe" class="def">rnOccL_maybe</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Var.html#t:Var">Var</a></p><div class="doc"><p>Look up the renaming of an occurrence in the left or right term
</p></div></div><div class="top"><p class="src"><a name="v:rnOccR_maybe" class="def">rnOccR_maybe</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Var.html#t:Var">Var</a></p><div class="doc"><p>Look up the renaming of an occurrence in the left or right term
</p></div></div><div class="top"><p class="src"><a name="v:rnBndrL" class="def">rnBndrL</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; (<a href="VarEnv.html#t:RnEnv2">RnEnv2</a>, <a href="Var.html#t:Var">Var</a>)</p><div class="doc"><p>Similar to <code><a href="VarEnv.html#v:rnBndr2">rnBndr2</a></code> but used when there's a binder on the left
 side only.
</p></div></div><div class="top"><p class="src"><a name="v:rnBndrR" class="def">rnBndrR</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; (<a href="VarEnv.html#t:RnEnv2">RnEnv2</a>, <a href="Var.html#t:Var">Var</a>)</p><div class="doc"><p>Similar to <code><a href="VarEnv.html#v:rnBndr2">rnBndr2</a></code> but used when there's a binder on the right
 side only.
</p></div></div><div class="top"><p class="src"><a name="v:nukeRnEnvL" class="def">nukeRnEnvL</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="VarEnv.html#t:RnEnv2">RnEnv2</a></p><div class="doc"><p>Wipe the left or right side renaming
</p></div></div><div class="top"><p class="src"><a name="v:nukeRnEnvR" class="def">nukeRnEnvR</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="VarEnv.html#t:RnEnv2">RnEnv2</a></p><div class="doc"><p>Wipe the left or right side renaming
</p></div></div><div class="top"><p class="src"><a name="v:delBndrL" class="def">delBndrL</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="VarEnv.html#t:RnEnv2">RnEnv2</a></p></div><div class="top"><p class="src"><a name="v:delBndrR" class="def">delBndrR</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="VarEnv.html#t:RnEnv2">RnEnv2</a></p></div><div class="top"><p class="src"><a name="v:delBndrsL" class="def">delBndrsL</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; [<a href="Var.html#t:Var">Var</a>] -&gt; <a href="VarEnv.html#t:RnEnv2">RnEnv2</a></p></div><div class="top"><p class="src"><a name="v:delBndrsR" class="def">delBndrsR</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; [<a href="Var.html#t:Var">Var</a>] -&gt; <a href="VarEnv.html#t:RnEnv2">RnEnv2</a></p></div><div class="top"><p class="src"><a name="v:addRnInScopeSet" class="def">addRnInScopeSet</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="VarEnv.html#t:VarEnv">VarEnv</a> <a href="Var.html#t:Var">Var</a> -&gt; <a href="VarEnv.html#t:RnEnv2">RnEnv2</a></p></div><div class="top"><p class="src"><a name="v:rnEtaL" class="def">rnEtaL</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; (<a href="VarEnv.html#t:RnEnv2">RnEnv2</a>, <a href="Var.html#t:Var">Var</a>)</p><div class="doc"><p>Similar to <code><a href="VarEnv.html#v:rnBndrL">rnBndrL</a></code> but used for eta expansion
 See Note [Eta expansion]
</p></div></div><div class="top"><p class="src"><a name="v:rnEtaR" class="def">rnEtaR</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; (<a href="VarEnv.html#t:RnEnv2">RnEnv2</a>, <a href="Var.html#t:Var">Var</a>)</p><div class="doc"><p>Similar to <code><a href="VarEnv.html#v:rnBndr2">rnBndr2</a></code> but used for eta expansion
 See Note [Eta expansion]
</p></div></div><div class="top"><p class="src"><a name="v:rnInScope" class="def">rnInScope</a> :: <a href="Var.html#t:Var">Var</a> -&gt; <a href="VarEnv.html#t:RnEnv2">RnEnv2</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:rnInScopeSet" class="def">rnInScopeSet</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="VarEnv.html#t:InScopeSet">InScopeSet</a></p></div><div class="top"><p class="src"><a name="v:lookupRnInScope" class="def">lookupRnInScope</a> :: <a href="VarEnv.html#t:RnEnv2">RnEnv2</a> -&gt; <a href="Var.html#t:Var">Var</a> -&gt; <a href="Var.html#t:Var">Var</a></p></div><h1 id="g:7">TidyEnv and its operation
</h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:TidyEnv" class="def">TidyEnv</a> = (<a href="OccName.html#t:TidyOccEnv">TidyOccEnv</a>, <a href="VarEnv.html#t:VarEnv">VarEnv</a> <a href="Var.html#t:Var">Var</a>)</p><div class="doc"><p>When tidying up print names, we keep a mapping of in-scope occ-names
 (the <code><a href="OccName.html#t:TidyOccEnv">TidyOccEnv</a></code>) and a Var-to-Var of the current renamings
</p></div></div><div class="top"><p class="src"><a name="v:emptyTidyEnv" class="def">emptyTidyEnv</a> :: <a href="VarEnv.html#t:TidyEnv">TidyEnv</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>