Sophie

Sophie

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

ghc-6.10.4-1mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--Rendered using the Haskell Html Library v0.2-->
<HTML
><HEAD
><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
><TITLE
>DFMonad</TITLE
><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
></SCRIPT
><SCRIPT TYPE="text/javascript"
>window.onload = function () {setSynopsis("mini_DFMonad.html")};</SCRIPT
></HEAD
><BODY
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="topbar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
></TD
><TD CLASS="title"
>ghc-6.10.4: The GHC API</TD
><TD CLASS="topbut"
><A HREF="index.html"
>Contents</A
></TD
><TD CLASS="topbut"
><A HREF="doc-index.html"
>Index</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="modulebar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><FONT SIZE="6"
>DFMonad</FONT
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Documentation</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:DataflowLattice"
><A NAME="t%3ADataflowLattice"
></A
></A
><B
>DataflowLattice</B
> a </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:DataflowLattice"
><A NAME="v%3ADataflowLattice"
></A
></A
><B
>DataflowLattice</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:fact_name"
><A NAME="v%3Afact_name"
></A
></A
><B
>fact_name</B
> :: <A HREF="../base/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:fact_bot"
><A NAME="v%3Afact_bot"
></A
></A
><B
>fact_bot</B
> :: a</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:fact_add_to"
><A NAME="v%3Afact_add_to"
></A
></A
><B
>fact_add_to</B
> :: a -&gt; a -&gt; <A HREF="CmmTx.html#t%3ATxRes"
>TxRes</A
> a</TD
><TD CLASS="rdoc"
>compute join of two args; something changed iff join is greater than 2nd arg
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:fact_do_logging"
><A NAME="v%3Afact_do_logging"
></A
></A
><B
>fact_do_logging</B
> :: <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A NAME="t:DataflowAnalysis"
><A NAME="t%3ADataflowAnalysis"
></A
></A
><B
>DataflowAnalysis</B
> m  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
>Methods</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A NAME="v:markFactsUnchanged"
><A NAME="v%3AmarkFactsUnchanged"
></A
></A
><B
>markFactsUnchanged</B
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: </TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; m f <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
><TD CLASS="rdoc"
>Useful for starting a new iteration
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:factsStatus"
><A NAME="v%3AfactsStatus"
></A
></A
><B
>factsStatus</B
> ::  m f <A HREF="CmmTx.html#t%3AChangeFlag"
>ChangeFlag</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:subAnalysis"
><A NAME="v%3AsubAnalysis"
></A
></A
><B
>subAnalysis</B
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: </TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; m f a</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>-&gt; m f a</TD
><TD CLASS="rdoc"
>Do a new analysis and then throw away
 <EM
>all</EM
> the related state.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:getFact"
><A NAME="v%3AgetFact"
></A
></A
><B
>getFact</B
> ::  <A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
> -&gt; m f f</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:setFact"
><A NAME="v%3AsetFact"
></A
></A
><B
>setFact</B
> :: <A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> f =&gt; <A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
> -&gt; f -&gt; m f <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:getExitFact"
><A NAME="v%3AgetExitFact"
></A
></A
><B
>getExitFact</B
> ::  m f f</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:setExitFact"
><A NAME="v%3AsetExitFact"
></A
></A
><B
>setExitFact</B
> :: <A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> f =&gt; f -&gt; m f <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:checkFactMatch"
><A NAME="v%3AcheckFactMatch"
></A
></A
><B
>checkFactMatch</B
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> f</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; <A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>-&gt; f</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>-&gt; m f <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
><TD CLASS="rdoc"
>assert fact already at this val
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:botFact"
><A NAME="v%3AbotFact"
></A
></A
><B
>botFact</B
> ::  m f f</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:forgetFact"
><A NAME="v%3AforgetFact"
></A
></A
><B
>forgetFact</B
> ::  <A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
> -&gt; m f <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:addLastOutFact"
><A NAME="v%3AaddLastOutFact"
></A
></A
><B
>addLastOutFact</B
> ::  (<A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
>, f) -&gt; m f <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="doc"
>It might be surprising these next two are needed in a pure analysis,
 but for some problems we do a shallow rewriting in which a rewritten
 graph is not itself considered for further rewriting but merely undergoes 
 an analysis.  In this case the results of a forward analysis might produce
 new facts that go on BlockId's that reside outside the graph being analyzed.
 Thus these lastOutFacts need to be available even in a pure analysis. 
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:bareLastOutFacts"
><A NAME="v%3AbareLastOutFacts"
></A
></A
><B
>bareLastOutFacts</B
> ::  m f [(<A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
>, f)]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:forgetLastOutFacts"
><A NAME="v%3AforgetLastOutFacts"
></A
></A
><B
>forgetLastOutFacts</B
> ::  m f <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:getAllFacts"
><A NAME="v%3AgetAllFacts"
></A
></A
><B
>getAllFacts</B
> ::  m f (<A HREF="BlockId.html#t%3ABlockEnv"
>BlockEnv</A
> f)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:setAllFacts"
><A NAME="v%3AsetAllFacts"
></A
></A
><B
>setAllFacts</B
> ::  <A HREF="BlockId.html#t%3ABlockEnv"
>BlockEnv</A
> f -&gt; m f <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:factsEnv"
><A NAME="v%3AfactsEnv"
></A
></A
><B
>factsEnv</B
> :: <A HREF="../base/Control-Monad.html#t%3AMonad"
>Monad</A
> (m f) =&gt; m f (<A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
> -&gt; f)</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:DataflowAnalysis')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:DataflowAnalysis" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Control-Monad.html#t%3AMonad"
>Monad</A
> m =&gt; <A HREF="DFMonad.html#t%3ADataflowAnalysis"
>DataflowAnalysis</A
> (DFM' m)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:DFM"
><A NAME="t%3ADFM"
></A
></A
><B
>DFM</B
> fact a = DFM' <A HREF="OptimizationFuel.html#t%3AFuelMonad"
>FuelMonad</A
> fact a</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:runDFM"
><A NAME="v%3ArunDFM"
></A
></A
><B
>runDFM</B
> :: <A HREF="../base/Control-Monad.html#t%3AMonad"
>Monad</A
> m =&gt; <A HREF="DFMonad.html#t%3ADataflowLattice"
>DataflowLattice</A
> f -&gt; DFM' m f a -&gt; m a</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:liftToDFM"
><A NAME="v%3AliftToDFM"
></A
></A
><B
>liftToDFM</B
> ::  <A HREF="OptimizationFuel.html#t%3AFuelMonad"
>FuelMonad</A
> x -&gt; <A HREF="DFMonad.html#t%3ADFM"
>DFM</A
> f x</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:markGraphRewritten"
><A NAME="v%3AmarkGraphRewritten"
></A
></A
><B
>markGraphRewritten</B
> :: <A HREF="../base/Control-Monad.html#t%3AMonad"
>Monad</A
> m =&gt; DFM' m f <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:graphWasRewritten"
><A NAME="v%3AgraphWasRewritten"
></A
></A
><B
>graphWasRewritten</B
> ::  <A HREF="DFMonad.html#t%3ADFM"
>DFM</A
> f <A HREF="CmmTx.html#t%3AChangeFlag"
>ChangeFlag</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:freshBlockId"
><A NAME="v%3AfreshBlockId"
></A
></A
><B
>freshBlockId</B
> ::  <A HREF="../base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="DFMonad.html#t%3ADFM"
>DFM</A
> f <A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
>module <A HREF="OptimizationFuel.html"
>OptimizationFuel</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="botbar"
>Produced by <A HREF="http://www.haskell.org/haddock/"
>Haddock</A
> version 2.4.2</TD
></TR
></TABLE
></BODY
></HTML
>