Sophie

Sophie

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

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>CoreUnfold</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_CoreUnfold.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">CoreUnfold</p></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:Unfolding">Unfolding</a> </li><li class="src short"><span class="keyword">data</span>  <a href="#t:UnfoldingGuidance">UnfoldingGuidance</a> </li><li class="src short"><a href="#v:noUnfolding">noUnfolding</a> :: <a href="CoreUnfold.html#t:Unfolding">Unfolding</a></li><li class="src short"><a href="#v:mkImplicitUnfolding">mkImplicitUnfolding</a> :: <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="CoreUnfold.html#t:Unfolding">Unfolding</a></li><li class="src short"><a href="#v:mkUnfolding">mkUnfolding</a> :: <a href="CoreSyn.html#t:UnfoldingSource">UnfoldingSource</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="CoreUnfold.html#t:Unfolding">Unfolding</a></li><li class="src short"><a href="#v:mkCoreUnfolding">mkCoreUnfolding</a> :: <a href="CoreSyn.html#t:UnfoldingSource">UnfoldingSource</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="BasicTypes.html#t:Arity">Arity</a> -&gt; <a href="CoreUnfold.html#t:UnfoldingGuidance">UnfoldingGuidance</a> -&gt; <a href="CoreUnfold.html#t:Unfolding">Unfolding</a></li><li class="src short"><a href="#v:mkTopUnfolding">mkTopUnfolding</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="CoreUnfold.html#t:Unfolding">Unfolding</a></li><li class="src short"><a href="#v:mkSimpleUnfolding">mkSimpleUnfolding</a> :: <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="CoreUnfold.html#t:Unfolding">Unfolding</a></li><li class="src short"><a href="#v:mkInlineUnfolding">mkInlineUnfolding</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="BasicTypes.html#t:Arity">Arity</a> -&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="CoreUnfold.html#t:Unfolding">Unfolding</a></li><li class="src short"><a href="#v:mkInlinableUnfolding">mkInlinableUnfolding</a> :: <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="CoreUnfold.html#t:Unfolding">Unfolding</a></li><li class="src short"><a href="#v:mkWwInlineRule">mkWwInlineRule</a> :: <a href="Var.html#t:Id">Id</a> -&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="BasicTypes.html#t:Arity">Arity</a> -&gt; <a href="CoreUnfold.html#t:Unfolding">Unfolding</a></li><li class="src short"><a href="#v:mkCompulsoryUnfolding">mkCompulsoryUnfolding</a> :: <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="CoreUnfold.html#t:Unfolding">Unfolding</a></li><li class="src short"><a href="#v:mkDFunUnfolding">mkDFunUnfolding</a> :: <a href="Type.html#t:Type">Type</a> -&gt; [<a href="CoreSyn.html#t:CoreExpr">CoreExpr</a>] -&gt; <a href="CoreUnfold.html#t:Unfolding">Unfolding</a></li><li class="src short"><a href="#v:interestingArg">interestingArg</a> :: <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="CoreUnfold.html#t:ArgSummary">ArgSummary</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:ArgSummary">ArgSummary</a> <ul class="subs"><li>= <a href="#v:TrivArg">TrivArg</a>  </li><li>| <a href="#v:NonTrivArg">NonTrivArg</a>  </li><li>| <a href="#v:ValueArg">ValueArg</a>  </li></ul></li><li class="src short"><a href="#v:couldBeSmallEnoughToInline">couldBeSmallEnoughToInline</a> :: <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:inlineBoringOk">inlineBoringOk</a> :: <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:certainlyWillInline">certainlyWillInline</a> :: <a href="CoreUnfold.html#t:Unfolding">Unfolding</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:smallEnoughToInline">smallEnoughToInline</a> :: <a href="CoreUnfold.html#t:Unfolding">Unfolding</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:callSiteInline">callSiteInline</a> :: <a href="DynFlags.html#t:DynFlags">DynFlags</a> -&gt; <a href="Var.html#t:Id">Id</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; [<a href="CoreUnfold.html#t:ArgSummary">ArgSummary</a>] -&gt; <a href="CoreUnfold.html#t:CallCtxt">CallCtxt</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:CallCtxt">CallCtxt</a> <ul class="subs"><li>= <a href="#v:BoringCtxt">BoringCtxt</a>  </li><li>| <a href="#v:ArgCtxt">ArgCtxt</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a>  </li><li>| <a href="#v:ValAppCtxt">ValAppCtxt</a>  </li><li>| <a href="#v:CaseCtxt">CaseCtxt</a>  </li></ul></li><li class="src short"><a href="#v:exprIsConApp_maybe">exprIsConApp_maybe</a> :: <a href="CoreSyn.html#t:IdUnfoldingFun">IdUnfoldingFun</a> -&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="DataCon.html#t:DataCon">DataCon</a>, [<a href="Type.html#t:Type">Type</a>], [<a href="CoreSyn.html#t:CoreExpr">CoreExpr</a>])</li><li class="src short"><a href="#v:exprIsLiteral_maybe">exprIsLiteral_maybe</a> :: <a href="CoreSyn.html#t:IdUnfoldingFun">IdUnfoldingFun</a> -&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Literal.html#t:Literal">Literal</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Unfolding" class="def">Unfolding</a>  </p><div class="doc"><p>Records the <em>unfolding</em> of an identifier, which is approximately the form the
 identifier would have if we substituted its definition in for the identifier.
 This type should be treated as abstract everywhere except in <a href="CoreUnfold.html">CoreUnfold</a>
</p></div><div class="subs instances"><p id="control.i:Unfolding" class="caption collapser" onclick="toggleSection('i:Unfolding')">Instances</p><div id="section.i:Unfolding" class="show"><table><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="CoreUnfold.html#t:Unfolding">Unfolding</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:UnfoldingGuidance" class="def">UnfoldingGuidance</a>  </p><div class="doc"><p><code><a href="CoreUnfold.html#t:UnfoldingGuidance">UnfoldingGuidance</a></code> says when unfolding should take place
</p></div><div class="subs instances"><p id="control.i:UnfoldingGuidance" class="caption collapser" onclick="toggleSection('i:UnfoldingGuidance')">Instances</p><div id="section.i:UnfoldingGuidance" class="show"><table><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="CoreUnfold.html#t:UnfoldingGuidance">UnfoldingGuidance</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:noUnfolding" class="def">noUnfolding</a> :: <a href="CoreUnfold.html#t:Unfolding">Unfolding</a></p><div class="doc"><p>There is no known <code><a href="CoreUnfold.html#t:Unfolding">Unfolding</a></code>
</p></div></div><div class="top"><p class="src"><a name="v:mkImplicitUnfolding" class="def">mkImplicitUnfolding</a> :: <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="CoreUnfold.html#t:Unfolding">Unfolding</a></p></div><div class="top"><p class="src"><a name="v:mkUnfolding" class="def">mkUnfolding</a> :: <a href="CoreSyn.html#t:UnfoldingSource">UnfoldingSource</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="CoreUnfold.html#t:Unfolding">Unfolding</a></p></div><div class="top"><p class="src"><a name="v:mkCoreUnfolding" class="def">mkCoreUnfolding</a> :: <a href="CoreSyn.html#t:UnfoldingSource">UnfoldingSource</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="BasicTypes.html#t:Arity">Arity</a> -&gt; <a href="CoreUnfold.html#t:UnfoldingGuidance">UnfoldingGuidance</a> -&gt; <a href="CoreUnfold.html#t:Unfolding">Unfolding</a></p></div><div class="top"><p class="src"><a name="v:mkTopUnfolding" class="def">mkTopUnfolding</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="CoreUnfold.html#t:Unfolding">Unfolding</a></p></div><div class="top"><p class="src"><a name="v:mkSimpleUnfolding" class="def">mkSimpleUnfolding</a> :: <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="CoreUnfold.html#t:Unfolding">Unfolding</a></p></div><div class="top"><p class="src"><a name="v:mkInlineUnfolding" class="def">mkInlineUnfolding</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="BasicTypes.html#t:Arity">Arity</a> -&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="CoreUnfold.html#t:Unfolding">Unfolding</a></p></div><div class="top"><p class="src"><a name="v:mkInlinableUnfolding" class="def">mkInlinableUnfolding</a> :: <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="CoreUnfold.html#t:Unfolding">Unfolding</a></p></div><div class="top"><p class="src"><a name="v:mkWwInlineRule" class="def">mkWwInlineRule</a> :: <a href="Var.html#t:Id">Id</a> -&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="BasicTypes.html#t:Arity">Arity</a> -&gt; <a href="CoreUnfold.html#t:Unfolding">Unfolding</a></p></div><div class="top"><p class="src"><a name="v:mkCompulsoryUnfolding" class="def">mkCompulsoryUnfolding</a> :: <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="CoreUnfold.html#t:Unfolding">Unfolding</a></p></div><div class="top"><p class="src"><a name="v:mkDFunUnfolding" class="def">mkDFunUnfolding</a> :: <a href="Type.html#t:Type">Type</a> -&gt; [<a href="CoreSyn.html#t:CoreExpr">CoreExpr</a>] -&gt; <a href="CoreUnfold.html#t:Unfolding">Unfolding</a></p></div><div class="top"><p class="src"><a name="v:interestingArg" class="def">interestingArg</a> :: <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="CoreUnfold.html#t:ArgSummary">ArgSummary</a></p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:ArgSummary" class="def">ArgSummary</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:TrivArg" class="def">TrivArg</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:NonTrivArg" class="def">NonTrivArg</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ValueArg" class="def">ValueArg</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:ArgSummary" class="caption collapser" onclick="toggleSection('i:ArgSummary')">Instances</p><div id="section.i:ArgSummary" class="show"><table><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="CoreUnfold.html#t:ArgSummary">ArgSummary</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:couldBeSmallEnoughToInline" class="def">couldBeSmallEnoughToInline</a> :: <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</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:inlineBoringOk" class="def">inlineBoringOk</a> :: <a href="CoreSyn.html#t:CoreExpr">CoreExpr</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:certainlyWillInline" class="def">certainlyWillInline</a> :: <a href="CoreUnfold.html#t:Unfolding">Unfolding</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:smallEnoughToInline" class="def">smallEnoughToInline</a> :: <a href="CoreUnfold.html#t:Unfolding">Unfolding</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:callSiteInline" class="def">callSiteInline</a> :: <a href="DynFlags.html#t:DynFlags">DynFlags</a> -&gt; <a href="Var.html#t:Id">Id</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; [<a href="CoreUnfold.html#t:ArgSummary">ArgSummary</a>] -&gt; <a href="CoreUnfold.html#t:CallCtxt">CallCtxt</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:CallCtxt" class="def">CallCtxt</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:BoringCtxt" class="def">BoringCtxt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ArgCtxt" class="def">ArgCtxt</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ValAppCtxt" class="def">ValAppCtxt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:CaseCtxt" class="def">CaseCtxt</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:CallCtxt" class="caption collapser" onclick="toggleSection('i:CallCtxt')">Instances</p><div id="section.i:CallCtxt" class="show"><table><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="CoreUnfold.html#t:CallCtxt">CallCtxt</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:exprIsConApp_maybe" class="def">exprIsConApp_maybe</a> :: <a href="CoreSyn.html#t:IdUnfoldingFun">IdUnfoldingFun</a> -&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="DataCon.html#t:DataCon">DataCon</a>, [<a href="Type.html#t:Type">Type</a>], [<a href="CoreSyn.html#t:CoreExpr">CoreExpr</a>])</p><div class="doc"><p>Returns <code>Just (dc, [t1..tk], [x1..xn])</code> if the argument expression is 
 a *saturated* constructor application of the form <code>dc t1..tk x1 .. xn</code>,
 where t1..tk are the *universally-qantified* type args of <code>dc</code>
</p></div></div><div class="top"><p class="src"><a name="v:exprIsLiteral_maybe" class="def">exprIsLiteral_maybe</a> :: <a href="CoreSyn.html#t:IdUnfoldingFun">IdUnfoldingFun</a> -&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Literal.html#t:Literal">Literal</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>