Sophie

Sophie

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

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
>MkZipCfg</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_MkZipCfg.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"
>MkZipCfg</FONT
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Synopsis</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AAGraph"
>AGraph</A
> m l</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%3C%2A%3E"
>(&lt;*&gt;)</A
> ::  <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AcatAGraphs"
>catAGraphs</A
> ::  [<A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l] -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AemptyAGraph"
>emptyAGraph</A
> ::  <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AwithFreshLabel"
>withFreshLabel</A
> ::  <A HREF="../base/Data-Char.html#t%3AString"
>String</A
> -&gt; (<A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
> -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l) -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AwithUnique"
>withUnique</A
> ::  (<A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l) -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkMiddle"
>mkMiddle</A
> ::  m -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkMiddles"
>mkMiddles</A
> ::  [m] -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkLast"
>mkLast</A
> :: (<A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> m, <A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> l, <A HREF="ZipCfg.html#t%3ALastNode"
>LastNode</A
> l) =&gt; l -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkZTail"
>mkZTail</A
> :: (<A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> m, <A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> l, <A HREF="ZipCfg.html#t%3ALastNode"
>LastNode</A
> l) =&gt; <A HREF="ZipCfg.html#t%3AZTail"
>ZTail</A
> m l -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkBranch"
>mkBranch</A
> :: (<A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> m, <A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> l, <A HREF="ZipCfg.html#t%3ALastNode"
>LastNode</A
> l) =&gt; <A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
> -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkLabel"
>mkLabel</A
> :: <A HREF="ZipCfg.html#t%3ALastNode"
>LastNode</A
> l =&gt; <A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
> -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkIfThenElse"
>mkIfThenElse</A
> :: (<A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> m, <A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> l, <A HREF="ZipCfg.html#t%3ALastNode"
>LastNode</A
> l) =&gt; (<A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
> -&gt; <A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
> -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l) -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkWhileDo"
>mkWhileDo</A
> :: (<A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> m, <A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> l, <A HREF="ZipCfg.html#t%3ALastNode"
>LastNode</A
> l) =&gt; (<A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
> -&gt; <A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
> -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l) -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AoutOfLine"
>outOfLine</A
> :: (<A HREF="ZipCfg.html#t%3ALastNode"
>LastNode</A
> l, <A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> m, <A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> l) =&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AemptyGraph"
>emptyGraph</A
> ::  <A HREF="ZipCfg.html#t%3AGraph"
>Graph</A
> m l</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AgraphOfMiddles"
>graphOfMiddles</A
> ::  [m] -&gt; <A HREF="ZipCfg.html#t%3AGraph"
>Graph</A
> m l</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AgraphOfZTail"
>graphOfZTail</A
> ::  <A HREF="ZipCfg.html#t%3AZTail"
>ZTail</A
> m l -&gt; <A HREF="ZipCfg.html#t%3AGraph"
>Graph</A
> m l</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AlgraphOfAGraph"
>lgraphOfAGraph</A
> ::  <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l -&gt; <A HREF="UniqSupply.html#t%3AUniqSM"
>UniqSM</A
> (<A HREF="ZipCfg.html#t%3ALGraph"
>LGraph</A
> m l)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AgraphOfAGraph"
>graphOfAGraph</A
> ::  <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l -&gt; <A HREF="UniqSupply.html#t%3AUniqSM"
>UniqSM</A
> (<A HREF="ZipCfg.html#t%3AGraph"
>Graph</A
> m l)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AlabelAGraph"
>labelAGraph</A
> ::  <A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
> -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l -&gt; <A HREF="UniqSupply.html#t%3AUniqSM"
>UniqSM</A
> (<A HREF="ZipCfg.html#t%3ALGraph"
>LGraph</A
> m l)</TD
></TR
></TABLE
></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:AGraph"
><A NAME="t%3AAGraph"
></A
></A
><B
>AGraph</B
> m l </TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:<*>"
><A NAME="v%3A%3C%2A%3E"
></A
></A
><B
>(&lt;*&gt;)</B
> ::  <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:catAGraphs"
><A NAME="v%3AcatAGraphs"
></A
></A
><B
>catAGraphs</B
> ::  [<A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l] -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:emptyAGraph"
><A NAME="v%3AemptyAGraph"
></A
></A
><B
>emptyAGraph</B
> ::  <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
></TR
><TR
><TD CLASS="doc"
>A graph is built up by splicing together graphs each containing a
 single node (where a label is considered a first node.  The empty
 graph is a left and right unit for splicing.  All of the AGraph
 constructors (even complex ones like <TT
><A HREF="MkZipCfg.html#v%3AmkIfThenElse"
>mkIfThenElse</A
></TT
>, as well as the
 splicing operation <A HREF="*"
>*</A
>, are constant-time operations.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:withFreshLabel"
><A NAME="v%3AwithFreshLabel"
></A
></A
><B
>withFreshLabel</B
> ::  <A HREF="../base/Data-Char.html#t%3AString"
>String</A
> -&gt; (<A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
> -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l) -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
></TR
><TR
><TD CLASS="doc"
>This function provides access to fresh labels without requiring
 clients to be programmed monadically.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:withUnique"
><A NAME="v%3AwithUnique"
></A
></A
><B
>withUnique</B
> ::  (<A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l) -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkMiddle"
><A NAME="v%3AmkMiddle"
></A
></A
><B
>mkMiddle</B
> ::  m -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkMiddles"
><A NAME="v%3AmkMiddles"
></A
></A
><B
>mkMiddles</B
> ::  [m] -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkLast"
><A NAME="v%3AmkLast"
></A
></A
><B
>mkLast</B
> :: (<A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> m, <A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> l, <A HREF="ZipCfg.html#t%3ALastNode"
>LastNode</A
> l) =&gt; l -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkZTail"
><A NAME="v%3AmkZTail"
></A
></A
><B
>mkZTail</B
> :: (<A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> m, <A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> l, <A HREF="ZipCfg.html#t%3ALastNode"
>LastNode</A
> l) =&gt; <A HREF="ZipCfg.html#t%3AZTail"
>ZTail</A
> m l -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkBranch"
><A NAME="v%3AmkBranch"
></A
></A
><B
>mkBranch</B
> :: (<A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> m, <A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> l, <A HREF="ZipCfg.html#t%3ALastNode"
>LastNode</A
> l) =&gt; <A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
> -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkLabel"
><A NAME="v%3AmkLabel"
></A
></A
><B
>mkLabel</B
> :: <A HREF="ZipCfg.html#t%3ALastNode"
>LastNode</A
> l =&gt; <A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
> -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkIfThenElse"
><A NAME="v%3AmkIfThenElse"
></A
></A
><B
>mkIfThenElse</B
> :: (<A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> m, <A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> l, <A HREF="ZipCfg.html#t%3ALastNode"
>LastNode</A
> l) =&gt; (<A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
> -&gt; <A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
> -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l) -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
></TR
><TR
><TD CLASS="doc"
><P
>For the structured control-flow constructs, a condition is
 represented as a function that takes as arguments the labels to
 goto on truth or falsehood.
</P
><P
>mkIfThenElse mk_cond then else
	= (mk_cond L1 L2) <A HREF="*> L1: then <*"
>*&gt; L1: then &lt;*</A
> goto J
		          <A HREF="*> L2: else <*"
>*&gt; L2: else &lt;*</A
> goto J
	  <A HREF="*"
>*</A
> J:
</P
><P
>where L1, L2, J are fresh
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkWhileDo"
><A NAME="v%3AmkWhileDo"
></A
></A
><B
>mkWhileDo</B
> :: (<A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> m, <A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> l, <A HREF="ZipCfg.html#t%3ALastNode"
>LastNode</A
> l) =&gt; (<A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
> -&gt; <A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
> -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l) -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:outOfLine"
><A NAME="v%3AoutOfLine"
></A
></A
><B
>outOfLine</B
> :: (<A HREF="ZipCfg.html#t%3ALastNode"
>LastNode</A
> l, <A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> m, <A HREF="Outputable.html#t%3AOutputable"
>Outputable</A
> l) =&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l -&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
></TR
><TR
><TD CLASS="doc"
><P
>The argument is an AGraph that has an 
 empty entry sequence and no exit sequence.
 The result is a new AGraph that has an empty entry sequence
 connected to an empty exit sequence, with the original graph
 sitting to the side out-of-line.
</P
><P
>Example:  mkMiddle (x = 3)
           <A HREF="*> outOfLine (mkLabel L <*"
>*&gt; outOfLine (mkLabel L &lt;*</A
> ...stuff...)
           <A HREF="*"
>*</A
> mkMiddle (y = x)
 Control will flow directly from x=3 to y=x;
 the block starting with L is <A HREF="on the side.html"
>on the side</A
>.
</P
><P
>N.B. algebraically forall g g' : g <A HREF="*> outOfLine g' == outOfLine g' <*"
>*&gt; outOfLine g' == outOfLine g' &lt;*</A
> g
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:emptyGraph"
><A NAME="v%3AemptyGraph"
></A
></A
><B
>emptyGraph</B
> ::  <A HREF="ZipCfg.html#t%3AGraph"
>Graph</A
> m l</TD
></TR
><TR
><TD CLASS="doc"
>The functions below build Graphs directly; for convenience, they
 are included here with the rest of the constructor functions.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:graphOfMiddles"
><A NAME="v%3AgraphOfMiddles"
></A
></A
><B
>graphOfMiddles</B
> ::  [m] -&gt; <A HREF="ZipCfg.html#t%3AGraph"
>Graph</A
> m l</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:graphOfZTail"
><A NAME="v%3AgraphOfZTail"
></A
></A
><B
>graphOfZTail</B
> ::  <A HREF="ZipCfg.html#t%3AZTail"
>ZTail</A
> m l -&gt; <A HREF="ZipCfg.html#t%3AGraph"
>Graph</A
> m l</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:lgraphOfAGraph"
><A NAME="v%3AlgraphOfAGraph"
></A
></A
><B
>lgraphOfAGraph</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; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="UniqSupply.html#t%3AUniqSM"
>UniqSM</A
> (<A HREF="ZipCfg.html#t%3ALGraph"
>LGraph</A
> m l)</TD
><TD CLASS="rdoc"
>allocate a fresh label for the entry point
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:graphOfAGraph"
><A NAME="v%3AgraphOfAGraph"
></A
></A
><B
>graphOfAGraph</B
> ::  <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l -&gt; <A HREF="UniqSupply.html#t%3AUniqSM"
>UniqSM</A
> (<A HREF="ZipCfg.html#t%3AGraph"
>Graph</A
> m l)</TD
></TR
><TR
><TD CLASS="doc"
>Converting an abstract graph to a concrete form is expensive: the
 cost is linear in the number of nodes in the answer, plus N log N
 in the number of basic blocks.  The conversion is also monadic
 because it may require the allocation of fresh, unique labels.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:labelAGraph"
><A NAME="v%3AlabelAGraph"
></A
></A
><B
>labelAGraph</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; <A HREF="BlockId.html#t%3ABlockId"
>BlockId</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="MkZipCfg.html#t%3AAGraph"
>AGraph</A
> m l</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="UniqSupply.html#t%3AUniqSM"
>UniqSM</A
> (<A HREF="ZipCfg.html#t%3ALGraph"
>LGraph</A
> m l)</TD
><TD CLASS="rdoc"
>use the given BlockId as the label of the entry point
</TD
></TR
></TABLE
></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
>