<!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 >CmmBrokenBlock</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_CmmBrokenBlock.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" >CmmBrokenBlock</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%3ABrokenBlock" >BrokenBlock</A > = <A HREF="#v%3ABrokenBlock" >BrokenBlock</A > {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="recfield" ><A HREF="#v%3AbrokenBlockId" >brokenBlockId</A > :: <A HREF="BlockId.html#t%3ABlockId" >BlockId</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3AbrokenBlockEntry" >brokenBlockEntry</A > :: <A HREF="CmmBrokenBlock.html#t%3ABlockEntryInfo" >BlockEntryInfo</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3AbrokenBlockStmts" >brokenBlockStmts</A > :: [<A HREF="Cmm.html#t%3ACmmStmt" >CmmStmt</A >]</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3AbrokenBlockTargets" >brokenBlockTargets</A > :: [<A HREF="BlockId.html#t%3ABlockId" >BlockId</A >]</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3AbrokenBlockExit" >brokenBlockExit</A > :: <A HREF="CmmBrokenBlock.html#t%3AFinalStmt" >FinalStmt</A ></TD ></TR ></TABLE >}</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ABlockEntryInfo" >BlockEntryInfo</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3AFunctionEntry" >FunctionEntry</A > <A HREF="Cmm.html#t%3ACmmInfo" >CmmInfo</A > <A HREF="CLabel.html#t%3ACLabel" >CLabel</A > <A HREF="Cmm.html#t%3ACmmFormalsWithoutKinds" >CmmFormalsWithoutKinds</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AContinuationEntry" >ContinuationEntry</A > <A HREF="Cmm.html#t%3ACmmFormalsWithoutKinds" >CmmFormalsWithoutKinds</A > <A HREF="ClosureInfo.html#t%3AC_SRT" >C_SRT</A > <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AControlEntry" >ControlEntry</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AFinalStmt" >FinalStmt</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3AFinalBranch" >FinalBranch</A > <A HREF="BlockId.html#t%3ABlockId" >BlockId</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AFinalReturn" >FinalReturn</A > <A HREF="Cmm.html#t%3ACmmActuals" >CmmActuals</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AFinalJump" >FinalJump</A > <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > <A HREF="Cmm.html#t%3ACmmActuals" >CmmActuals</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AFinalCall" >FinalCall</A > <A HREF="BlockId.html#t%3ABlockId" >BlockId</A > <A HREF="Cmm.html#t%3ACmmCallTarget" >CmmCallTarget</A > <A HREF="Cmm.html#t%3ACmmFormals" >CmmFormals</A > <A HREF="Cmm.html#t%3ACmmActuals" >CmmActuals</A > <A HREF="ClosureInfo.html#t%3AC_SRT" >C_SRT</A > <A HREF="Cmm.html#t%3ACmmReturnInfo" >CmmReturnInfo</A > <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AFinalSwitch" >FinalSwitch</A > <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > [<A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="BlockId.html#t%3ABlockId" >BlockId</A >]</TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AbreakBlock" >breakBlock</A > :: [<A HREF="BlockId.html#t%3ABlockId" >BlockId</A >] -> [<A HREF="Unique.html#t%3AUnique" >Unique</A >] -> <A HREF="Cmm.html#t%3ACmmBasicBlock" >CmmBasicBlock</A > -> <A HREF="CmmBrokenBlock.html#t%3ABlockEntryInfo" >BlockEntryInfo</A > -> ([(<A HREF="BlockId.html#t%3ABlockId" >BlockId</A >, <A HREF="CmmBrokenBlock.html#t%3AContFormat" >ContFormat</A >)], [<A HREF="CmmBrokenBlock.html#t%3ABrokenBlock" >BrokenBlock</A >])</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcmmBlockFromBrokenBlock" >cmmBlockFromBrokenBlock</A > :: <A HREF="CmmBrokenBlock.html#t%3ABrokenBlock" >BrokenBlock</A > -> <A HREF="Cmm.html#t%3ACmmBasicBlock" >CmmBasicBlock</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AblocksToBlockEnv" >blocksToBlockEnv</A > :: [<A HREF="CmmBrokenBlock.html#t%3ABrokenBlock" >BrokenBlock</A >] -> <A HREF="BlockId.html#t%3ABlockEnv" >BlockEnv</A > <A HREF="CmmBrokenBlock.html#t%3ABrokenBlock" >BrokenBlock</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AadaptBlockToFormat" >adaptBlockToFormat</A > :: [(<A HREF="BlockId.html#t%3ABlockId" >BlockId</A >, <A HREF="CmmBrokenBlock.html#t%3AContFormat" >ContFormat</A >)] -> <A HREF="Unique.html#t%3AUnique" >Unique</A > -> <A HREF="CmmBrokenBlock.html#t%3ABrokenBlock" >BrokenBlock</A > -> [<A HREF="CmmBrokenBlock.html#t%3ABrokenBlock" >BrokenBlock</A >]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AselectContinuations" >selectContinuations</A > :: [(<A HREF="BlockId.html#t%3ABlockId" >BlockId</A >, <A HREF="CmmBrokenBlock.html#t%3AContFormat" >ContFormat</A >)] -> [(<A HREF="BlockId.html#t%3ABlockId" >BlockId</A >, <A HREF="CmmBrokenBlock.html#t%3AContFormat" >ContFormat</A >)]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AContFormat" >ContFormat</A > </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" >makeContinuationEntries</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:BrokenBlock" ><A NAME="t%3ABrokenBlock" ></A ></A ><B >BrokenBlock</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >Similar to a CmmBlock with a little extra information to help the CPS analysis. </TD ></TR ><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:BrokenBlock" ><A NAME="v%3ABrokenBlock" ></A ></A ><B >BrokenBlock</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:brokenBlockId" ><A NAME="v%3AbrokenBlockId" ></A ></A ><B >brokenBlockId</B > :: <A HREF="BlockId.html#t%3ABlockId" >BlockId</A ></TD ><TD CLASS="rdoc" >The block's label like a <TT ><A HREF="Cmm.html#t%3ACmmBasicBlock" >CmmBasicBlock</A ></TT > </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:brokenBlockEntry" ><A NAME="v%3AbrokenBlockEntry" ></A ></A ><B >brokenBlockEntry</B > :: <A HREF="CmmBrokenBlock.html#t%3ABlockEntryInfo" >BlockEntryInfo</A ></TD ><TD CLASS="rdoc" >Ways this block can be entered </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:brokenBlockStmts" ><A NAME="v%3AbrokenBlockStmts" ></A ></A ><B >brokenBlockStmts</B > :: [<A HREF="Cmm.html#t%3ACmmStmt" >CmmStmt</A >]</TD ><TD CLASS="rdoc" >Body like a CmmBasicBlock (but without the last statement) </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:brokenBlockTargets" ><A NAME="v%3AbrokenBlockTargets" ></A ></A ><B >brokenBlockTargets</B > :: [<A HREF="BlockId.html#t%3ABlockId" >BlockId</A >]</TD ><TD CLASS="rdoc" >Blocks that this block could branch to either by conditional branches or via the last statement </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:brokenBlockExit" ><A NAME="v%3AbrokenBlockExit" ></A ></A ><B >brokenBlockExit</B > :: <A HREF="CmmBrokenBlock.html#t%3AFinalStmt" >FinalStmt</A ></TD ><TD CLASS="rdoc" >The final statement of the block </TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:BlockEntryInfo" ><A NAME="t%3ABlockEntryInfo" ></A ></A ><B >BlockEntryInfo</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >How a block could be entered See Note [An example of CPS conversion] </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:FunctionEntry" ><A NAME="v%3AFunctionEntry" ></A ></A ><B >FunctionEntry</B > <A HREF="Cmm.html#t%3ACmmInfo" >CmmInfo</A > <A HREF="CLabel.html#t%3ACLabel" >CLabel</A > <A HREF="Cmm.html#t%3ACmmFormalsWithoutKinds" >CmmFormalsWithoutKinds</A ></TD ><TD CLASS="rdoc" >Block is the beginning of a function, parameters are: 1. Function header info 2. The function name 3. Aguments to function Only the formal parameters are live </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:ContinuationEntry" ><A NAME="v%3AContinuationEntry" ></A ></A ><B >ContinuationEntry</B > <A HREF="Cmm.html#t%3ACmmFormalsWithoutKinds" >CmmFormalsWithoutKinds</A > <A HREF="ClosureInfo.html#t%3AC_SRT" >C_SRT</A > <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A ></TD ><TD CLASS="rdoc" >Return point of a function call, parameters are: 1. return values (argument to continuation) 2. SRT for the continuation's info table 3. True <A HREF="=" >=</A > GC block so ignore stack size Live variables, other than the return values, are on the stack </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:ControlEntry" ><A NAME="v%3AControlEntry" ></A ></A ><B >ControlEntry</B ></TD ><TD CLASS="rdoc" >Any other kind of block. Only entered due to control flow. </TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:FinalStmt" ><A NAME="t%3AFinalStmt" ></A ></A ><B >FinalStmt</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >Final statement in a BlokenBlock. Constructors and arguments match those in <TT ><A HREF="Cmm.html#t%3ACmm" >Cmm</A ></TT >, but are restricted to branches, returns, jumps, calls and switches </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:FinalBranch" ><A NAME="v%3AFinalBranch" ></A ></A ><B >FinalBranch</B > <A HREF="BlockId.html#t%3ABlockId" >BlockId</A ></TD ><TD CLASS="rdoc" >Same as <TT ><A HREF="Cmm.html#v%3ACmmBranch" >CmmBranch</A ></TT >. Target must be a ControlEntry </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:FinalReturn" ><A NAME="v%3AFinalReturn" ></A ></A ><B >FinalReturn</B > <A HREF="Cmm.html#t%3ACmmActuals" >CmmActuals</A ></TD ><TD CLASS="rdoc" >Same as <TT ><A HREF="Cmm.html#v%3ACmmReturn" >CmmReturn</A ></TT >. Parameter is the return values. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:FinalJump" ><A NAME="v%3AFinalJump" ></A ></A ><B >FinalJump</B > <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > <A HREF="Cmm.html#t%3ACmmActuals" >CmmActuals</A ></TD ><TD CLASS="rdoc" >Same as <TT ><A HREF="Cmm.html#v%3ACmmJump" >CmmJump</A ></TT >. Parameters: 1. The function to call, 2. Arguments of the call </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:FinalCall" ><A NAME="v%3AFinalCall" ></A ></A ><B >FinalCall</B > <A HREF="BlockId.html#t%3ABlockId" >BlockId</A > <A HREF="Cmm.html#t%3ACmmCallTarget" >CmmCallTarget</A > <A HREF="Cmm.html#t%3ACmmFormals" >CmmFormals</A > <A HREF="Cmm.html#t%3ACmmActuals" >CmmActuals</A > <A HREF="ClosureInfo.html#t%3AC_SRT" >C_SRT</A > <A HREF="Cmm.html#t%3ACmmReturnInfo" >CmmReturnInfo</A > <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool" >Bool</A ></TD ><TD CLASS="rdoc" >Same as <TT ><A HREF="Cmm.html#v%3ACmmCallee" >CmmCallee</A ></TT > followed by CmmGoto. Parameters: 1. Target of the CmmGoto (must be a <TT ><A HREF="CmmBrokenBlock.html#v%3AContinuationEntry" >ContinuationEntry</A ></TT >) 2. The function to call 3. Results from call (redundant with ContinuationEntry) 4. Arguments to call 5. SRT for the continuation's info table 6. Does the function return? 7. True <A HREF="=" >=</A > GC block so ignore stack size </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:FinalSwitch" ><A NAME="v%3AFinalSwitch" ></A ></A ><B >FinalSwitch</B > <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A > [<A HREF="../base/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="BlockId.html#t%3ABlockId" >BlockId</A >]</TD ><TD CLASS="rdoc" >Same as a <TT ><A HREF="Cmm.html#v%3ACmmSwitch" >CmmSwitch</A ></TT >. Paremeters: 1. Scrutinee (zero based) 2. Targets </TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:breakBlock" ><A NAME="v%3AbreakBlock" ></A ></A ><B >breakBlock</B ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: [<A HREF="BlockId.html#t%3ABlockId" >BlockId</A >]</TD ><TD CLASS="rdoc" >Any GC blocks that should be special </TD ></TR ><TR ><TD CLASS="arg" >-> [<A HREF="Unique.html#t%3AUnique" >Unique</A >]</TD ><TD CLASS="rdoc" >An infinite list of uniques to create names of the new blocks with </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="Cmm.html#t%3ACmmBasicBlock" >CmmBasicBlock</A ></TD ><TD CLASS="rdoc" >Input block to break apart </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="CmmBrokenBlock.html#t%3ABlockEntryInfo" >BlockEntryInfo</A ></TD ><TD CLASS="rdoc" >Info for the first created <TT ><A HREF="CmmBrokenBlock.html#t%3ABrokenBlock" >BrokenBlock</A ></TT > </TD ></TR ><TR ><TD CLASS="arg" >-> ([(<A HREF="BlockId.html#t%3ABlockId" >BlockId</A >, <A HREF="CmmBrokenBlock.html#t%3AContFormat" >ContFormat</A >)], [<A HREF="CmmBrokenBlock.html#t%3ABrokenBlock" >BrokenBlock</A >])</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" >Takes a <TT ><A HREF="Cmm.html#t%3ACmmBasicBlock" >CmmBasicBlock</A ></TT > and breaks it up into a list of <TT ><A HREF="CmmBrokenBlock.html#t%3ABrokenBlock" >BrokenBlock</A ></TT > by splitting on each <TT ><A HREF="Cmm.html#v%3ACmmCall" >CmmCall</A ></TT > in the <TT ><A HREF="Cmm.html#t%3ACmmBasicBlock" >CmmBasicBlock</A ></TT >. </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:cmmBlockFromBrokenBlock" ><A NAME="v%3AcmmBlockFromBrokenBlock" ></A ></A ><B >cmmBlockFromBrokenBlock</B > :: <A HREF="CmmBrokenBlock.html#t%3ABrokenBlock" >BrokenBlock</A > -> <A HREF="Cmm.html#t%3ACmmBasicBlock" >CmmBasicBlock</A ></TD ></TR ><TR ><TD CLASS="doc" >Convert from a BrokenBlock back to an equivalent CmmBasicBlock Needed by liveness analysis </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:blocksToBlockEnv" ><A NAME="v%3AblocksToBlockEnv" ></A ></A ><B >blocksToBlockEnv</B > :: [<A HREF="CmmBrokenBlock.html#t%3ABrokenBlock" >BrokenBlock</A >] -> <A HREF="BlockId.html#t%3ABlockEnv" >BlockEnv</A > <A HREF="CmmBrokenBlock.html#t%3ABrokenBlock" >BrokenBlock</A ></TD ></TR ><TR ><TD CLASS="doc" >Build a mapping so we can lookup a <TT ><A HREF="CmmBrokenBlock.html#t%3ABrokenBlock" >BrokenBlock</A ></TT > by its <TT ><A HREF="BlockId.html#t%3ABlockId" >BlockId</A ></TT > </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:adaptBlockToFormat" ><A NAME="v%3AadaptBlockToFormat" ></A ></A ><B >adaptBlockToFormat</B > :: [(<A HREF="BlockId.html#t%3ABlockId" >BlockId</A >, <A HREF="CmmBrokenBlock.html#t%3AContFormat" >ContFormat</A >)] -> <A HREF="Unique.html#t%3AUnique" >Unique</A > -> <A HREF="CmmBrokenBlock.html#t%3ABrokenBlock" >BrokenBlock</A > -> [<A HREF="CmmBrokenBlock.html#t%3ABrokenBlock" >BrokenBlock</A >]</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:selectContinuations" ><A NAME="v%3AselectContinuations" ></A ></A ><B >selectContinuations</B > :: [(<A HREF="BlockId.html#t%3ABlockId" >BlockId</A >, <A HREF="CmmBrokenBlock.html#t%3AContFormat" >ContFormat</A >)] -> [(<A HREF="BlockId.html#t%3ABlockId" >BlockId</A >, <A HREF="CmmBrokenBlock.html#t%3AContFormat" >ContFormat</A >)]</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:ContFormat" ><A NAME="t%3AContFormat" ></A ></A ><B >ContFormat</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ContFormat')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:ContFormat" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="../base/Data-Eq.html#t%3AEq" >Eq</A > <A HREF="CmmBrokenBlock.html#t%3AContFormat" >ContFormat</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" >makeContinuationEntries</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 >