MAYBE
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http:/www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>H-Termination proof of ../tpdb/FP/full_haskell/List_groupBy_1.hs</title>
</head>
<body>
<BR><B>H-Termination</B> of the given <I>Haskell-Program with start terms</I> could not be shown:<BR><BR><BR><BR><pre>&#8627 <B>HASKELL</B></pre><pre>  &#8627 LR</pre><BR><html>
<body>mainModule Main<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>
                   &nbsp;
                </td><td>((<FONT COLOR="#000088">List.groupBy</FONT> :: (<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Bool</FONT>)&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[[<FONT COLOR="#000088">a</FONT>]]) :: (<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Bool</FONT>)&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[[<FONT COLOR="#000088">a</FONT>]])</td>
</tr>
</table>
<br>module List where<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">import qualified Main<br>import qualified Maybe<br>import qualified Prelude<br>
<br>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top"><FONT COLOR="#000088">groupBy</FONT> :: (<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Bool</FONT>)&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[[<FONT COLOR="#000088">a</FONT>]]<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">groupBy</FONT>&nbsp;</td><td valign="top">_&nbsp;<FONT COLOR="#666600">[]</FONT>&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#666600">[]</FONT></td>
</tr>
<tr>
<td valign="top"><FONT COLOR="#000088">groupBy</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#000088">eq</FONT>&nbsp;(<FONT COLOR="#000088">x</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">xs</FONT>)&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top">(<FONT COLOR="#000088">x</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">ys</FONT>)&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">groupBy</FONT> <FONT COLOR="#000088">eq</FONT> <FONT COLOR="#000088">zs</FONT></td><td valign="top">&nbsp;where&nbsp;</td><td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">vv10</FONT>&nbsp;</td><td valign="top"></td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">span</FONT> (<FONT COLOR="#000088">eq</FONT> <FONT COLOR="#000088">x</FONT>) <FONT COLOR="#000088">xs</FONT></td>
</tr>
</table>
</td>
</tr>
<tr>
<td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">ys</FONT>&nbsp;</td><td valign="top"></td><td valign="top">=&nbsp;</td><td valign="top">(\(<FONT COLOR="#000088">ys</FONT>,_)&nbsp;-&gt;<FONT COLOR="#000088">ys</FONT>) <FONT COLOR="#000088">vv10</FONT></td>
</tr>
</table>
</td>
</tr>
<tr>
<td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">zs</FONT>&nbsp;</td><td valign="top"></td><td valign="top">=&nbsp;</td><td valign="top">(\(_,<FONT COLOR="#000088">zs</FONT>)&nbsp;-&gt;<FONT COLOR="#000088">zs</FONT>) <FONT COLOR="#000088">vv10</FONT></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<BR>
</td>
</tr>
</table>
<br>module Main where<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">import qualified List<br>import qualified Maybe<br>import qualified Prelude<br>
<br>
</td>
</tr>
</table>
<br>module Maybe where<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">import qualified List<br>import qualified Main<br>import qualified Prelude<br>
<br>
</td>
</tr>
</table>
<br>
</body>
</html>
<BR>Lambda Reductions:<BR>The following Lambda expression<BR><BLOCKQUOTE>\(_,<font color=#000088>zs</font>)&#8594;<font color=#000088>zs</font></BLOCKQUOTE><BR>is transformed to<BR><BLOCKQUOTE><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>zs0</font>&#160;</td><td valign="top">(_,<font color=#000088>zs</font>)</td><td valign="top">&#160;=&#160;<font color=#000088>zs</font></td></tr>
</table></BLOCKQUOTE><BR>The following Lambda expression<BR><BLOCKQUOTE>\(<font color=#000088>ys</font>,_)&#8594;<font color=#000088>ys</font></BLOCKQUOTE><BR>is transformed to<BR><BLOCKQUOTE><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>ys0</font>&#160;</td><td valign="top">(<font color=#000088>ys</font>,_)</td><td valign="top">&#160;=&#160;<font color=#000088>ys</font></td></tr>
</table></BLOCKQUOTE><BR>The following Lambda expression<BR><BLOCKQUOTE>\(_,<font color=#000088>zs</font>)&#8594;<font color=#000088>zs</font></BLOCKQUOTE><BR>is transformed to<BR><BLOCKQUOTE><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>zs1</font>&#160;</td><td valign="top">(_,<font color=#000088>zs</font>)</td><td valign="top">&#160;=&#160;<font color=#000088>zs</font></td></tr>
</table></BLOCKQUOTE><BR>The following Lambda expression<BR><BLOCKQUOTE>\(<font color=#000088>ys</font>,_)&#8594;<font color=#000088>ys</font></BLOCKQUOTE><BR>is transformed to<BR><BLOCKQUOTE><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>ys1</font>&#160;</td><td valign="top">(<font color=#000088>ys</font>,_)</td><td valign="top">&#160;=&#160;<font color=#000088>ys</font></td></tr>
</table></BLOCKQUOTE><BR><BR><BR><pre>&#8627 HASKELL</pre><pre>  &#8627 LR</pre><pre>    &#8627 <B>HASKELL</B></pre><pre>      &#8627 BR</pre><BR><html>
<body>mainModule Main<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>
                   &nbsp;
                </td><td>((<FONT COLOR="#000088">List.groupBy</FONT> :: (<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Bool</FONT>)&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[[<FONT COLOR="#000088">a</FONT>]]) :: (<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Bool</FONT>)&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[[<FONT COLOR="#000088">a</FONT>]])</td>
</tr>
</table>
<br>module List where<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">import qualified Main<br>import qualified Maybe<br>import qualified Prelude<br>
<br>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top"><FONT COLOR="#000088">groupBy</FONT> :: (<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Bool</FONT>)&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[[<FONT COLOR="#000088">a</FONT>]]<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">groupBy</FONT>&nbsp;</td><td valign="top">_&nbsp;<FONT COLOR="#666600">[]</FONT>&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#666600">[]</FONT></td>
</tr>
<tr>
<td valign="top"><FONT COLOR="#000088">groupBy</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#000088">eq</FONT>&nbsp;(<FONT COLOR="#000088">x</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">xs</FONT>)&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top">(<FONT COLOR="#000088">x</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">ys</FONT>)&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">groupBy</FONT> <FONT COLOR="#000088">eq</FONT> <FONT COLOR="#000088">zs</FONT></td><td valign="top">&nbsp;where&nbsp;</td><td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">vv10</FONT>&nbsp;</td><td valign="top"></td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">span</FONT> (<FONT COLOR="#000088">eq</FONT> <FONT COLOR="#000088">x</FONT>) <FONT COLOR="#000088">xs</FONT></td>
</tr>
</table>
</td>
</tr>
<tr>
<td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">ys</FONT>&nbsp;</td><td valign="top"></td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">ys0</FONT> <FONT COLOR="#000088">vv10</FONT></td>
</tr>
</table>
</td>
</tr>
<tr>
<td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">ys0</FONT>&nbsp;</td><td valign="top">(<FONT COLOR="#000088">ys</FONT>,_)&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">ys</FONT></td>
</tr>
</table>
</td>
</tr>
<tr>
<td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">zs</FONT>&nbsp;</td><td valign="top"></td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">zs0</FONT> <FONT COLOR="#000088">vv10</FONT></td>
</tr>
</table>
</td>
</tr>
<tr>
<td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">zs0</FONT>&nbsp;</td><td valign="top">(_,<FONT COLOR="#000088">zs</FONT>)&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">zs</FONT></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<BR>
</td>
</tr>
</table>
<br>module Main where<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">import qualified List<br>import qualified Maybe<br>import qualified Prelude<br>
<br>
</td>
</tr>
</table>
<br>module Maybe where<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">import qualified List<br>import qualified Main<br>import qualified Prelude<br>
<br>
</td>
</tr>
</table>
<br>
</body>
</html>
<BR>Replaced joker patterns by fresh variables and removed binding patterns.<BR>Binding Reductions:<BR>The bind variable of the following binding Pattern<BR><BLOCKQUOTE><font color=#000088>xs</font>@(<font color=#000088>wu</font>&#160;<font color=#666600>:</font>&#160;<font color=#000088>wv</font>)</BLOCKQUOTE><BR>is replaced by the following term<BR><BLOCKQUOTE><font color=#000088>wu</font>&#160;<font color=#666600>:</font>&#160;<font color=#000088>wv</font></BLOCKQUOTE><BR><BR><BR><pre>&#8627 HASKELL</pre><pre>  &#8627 LR</pre><pre>    &#8627 HASKELL</pre><pre>      &#8627 BR</pre><pre>        &#8627 <B>HASKELL</B></pre><pre>          &#8627 COR</pre><BR><html>
<body>mainModule Main<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>
                   &nbsp;
                </td><td>((<FONT COLOR="#000088">List.groupBy</FONT> :: (<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Bool</FONT>)&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[[<FONT COLOR="#000088">a</FONT>]]) :: (<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Bool</FONT>)&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[[<FONT COLOR="#000088">a</FONT>]])</td>
</tr>
</table>
<br>module List where<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">import qualified Main<br>import qualified Maybe<br>import qualified Prelude<br>
<br>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top"><FONT COLOR="#000088">groupBy</FONT> :: (<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Bool</FONT>)&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[[<FONT COLOR="#000088">a</FONT>]]<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">groupBy</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#000088">vw</FONT>&nbsp;<FONT COLOR="#666600">[]</FONT>&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#666600">[]</FONT></td>
</tr>
<tr>
<td valign="top"><FONT COLOR="#000088">groupBy</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#000088">eq</FONT>&nbsp;(<FONT COLOR="#000088">x</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">xs</FONT>)&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top">(<FONT COLOR="#000088">x</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">ys</FONT>)&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">groupBy</FONT> <FONT COLOR="#000088">eq</FONT> <FONT COLOR="#000088">zs</FONT></td><td valign="top">&nbsp;where&nbsp;</td><td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">vv10</FONT>&nbsp;</td><td valign="top"></td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">span</FONT> (<FONT COLOR="#000088">eq</FONT> <FONT COLOR="#000088">x</FONT>) <FONT COLOR="#000088">xs</FONT></td>
</tr>
</table>
</td>
</tr>
<tr>
<td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">ys</FONT>&nbsp;</td><td valign="top"></td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">ys0</FONT> <FONT COLOR="#000088">vv10</FONT></td>
</tr>
</table>
</td>
</tr>
<tr>
<td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">ys0</FONT>&nbsp;</td><td valign="top">(<FONT COLOR="#000088">ys</FONT>,<FONT COLOR="#000088">vx</FONT>)&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">ys</FONT></td>
</tr>
</table>
</td>
</tr>
<tr>
<td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">zs</FONT>&nbsp;</td><td valign="top"></td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">zs0</FONT> <FONT COLOR="#000088">vv10</FONT></td>
</tr>
</table>
</td>
</tr>
<tr>
<td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">zs0</FONT>&nbsp;</td><td valign="top">(<FONT COLOR="#000088">vy</FONT>,<FONT COLOR="#000088">zs</FONT>)&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">zs</FONT></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<BR>
</td>
</tr>
</table>
<br>module Main where<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">import qualified List<br>import qualified Maybe<br>import qualified Prelude<br>
<br>
</td>
</tr>
</table>
<br>module Maybe where<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">import qualified List<br>import qualified Main<br>import qualified Prelude<br>
<br>
</td>
</tr>
</table>
<br>
</body>
</html>
<BR>Cond Reductions:<BR>The following Function with conditions<BR><BLOCKQUOTE><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>span</font>&#160;</td><td valign="top"><font color=#000088>p</font>&#160;<font color=#666600>[]</font></td><td valign="top">&#160;=&#160;(<font color=#666600>[]</font>,<font color=#666600>[]</font>)</td></tr>
<tr><td valign="top"><font color=#000088>span</font>&#160;</td><td valign="top"><font color=#000088>p</font>&#160;(<font color=#000088>wu</font>&#160;<font color=#666600>:</font>&#160;<font color=#000088>wv</font>)</td><td valign="top"><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<td  valign="top" colspan="2"><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top">&#160;|&#160;</td><td valign="top"><font color=#000088>p</font>&#160;<font color=#000088>wu</font></td><td valign="bottom"><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top">&#160;=&#160;</td><td valign="top">(<font color=#000088>wu</font>&#160;<font color=#666600>:</font>&#160;<font color=#000088>ys</font>,<font color=#000088>zs</font>)</td></tr>
</table></td></tr>
<tr><td valign="top">&#160;|&#160;</td><td valign="top"><font color=#000088>otherwise</font></td><td valign="bottom"><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top">&#160;=&#160;</td><td valign="top">(<font color=#666600>[]</font>,<font color=#000088>wu</font>&#160;<font color=#666600>:</font>&#160;<font color=#000088>wv</font>)</td></tr>
</table></td></tr>
</table></td></tr>
<tr><td valign="top">where&#160;</td><td valign="top"><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>vu43</font>&#160;</td><td valign="top"></td><td valign="top">&#160;=&#160;<font color=#000088>span</font>&#160;<font color=#000088>p</font>&#160;<font color=#000088>wv</font></td></tr>
</table></td></tr>
<tr><td></td><td valign="top"><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>ys</font>&#160;</td><td valign="top"></td><td valign="top">&#160;=&#160;<font color=#000088>ys1</font>&#160;<font color=#000088>vu43</font></td></tr>
</table></td></tr>
<tr><td></td><td valign="top"><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>ys1</font>&#160;</td><td valign="top">(<font color=#000088>ys</font>,<font color=#000088>wx</font>)</td><td valign="top">&#160;=&#160;<font color=#000088>ys</font></td></tr>
</table></td></tr>
<tr><td></td><td valign="top"><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>zs</font>&#160;</td><td valign="top"></td><td valign="top">&#160;=&#160;<font color=#000088>zs1</font>&#160;<font color=#000088>vu43</font></td></tr>
</table></td></tr>
<tr><td></td><td valign="top"><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>zs1</font>&#160;</td><td valign="top">(<font color=#000088>ww</font>,<font color=#000088>zs</font>)</td><td valign="top">&#160;=&#160;<font color=#000088>zs</font></td></tr>
</table></td></tr>
</table></td></tr>
</table></BLOCKQUOTE><BR>is transformed to<BR><BLOCKQUOTE><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>span</font>&#160;</td><td valign="top"><font color=#000088>p</font>&#160;<font color=#666600>[]</font></td><td valign="top">&#160;=&#160;<font color=#000088>span3</font>&#160;<font color=#000088>p</font>&#160;<font color=#666600>[]</font></td></tr>
<tr><td valign="top"><font color=#000088>span</font>&#160;</td><td valign="top"><font color=#000088>p</font>&#160;(<font color=#000088>wu</font>&#160;<font color=#666600>:</font>&#160;<font color=#000088>wv</font>)</td><td valign="top">&#160;=&#160;<font color=#000088>span2</font>&#160;<font color=#000088>p</font>&#160;(<font color=#000088>wu</font>&#160;<font color=#666600>:</font>&#160;<font color=#000088>wv</font>)</td></tr>
</table></BLOCKQUOTE><BR><BLOCKQUOTE><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>span2</font>&#160;</td><td valign="top"><font color=#000088>p</font>&#160;(<font color=#000088>wu</font>&#160;<font color=#666600>:</font>&#160;<font color=#000088>wv</font>)</td><td valign="top">&#160;=&#160;<table cellspacing="0" cellpadding="0" border="0" frame="void" >
<td  valign="top" colspan="2"><font color=#000088>span1</font>&#160;<font color=#000088>p</font>&#160;<font color=#000088>wu</font>&#160;<font color=#000088>wv</font>&#160;(<font color=#000088>p</font>&#160;<font color=#000088>wu</font>)</td></tr>
<tr><td valign="top">where&#160;</td><td valign="top"><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>span0</font>&#160;</td><td valign="top"><font color=#000088>p</font>&#160;<font color=#000088>wu</font>&#160;<font color=#000088>wv</font>&#160;<font color=#666600>True</font></td><td valign="top">&#160;=&#160;(<font color=#666600>[]</font>,<font color=#000088>wu</font>&#160;<font color=#666600>:</font>&#160;<font color=#000088>wv</font>)</td></tr>
</table></td></tr>
<tr><td></td><td valign="top"><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>span1</font>&#160;</td><td valign="top"><font color=#000088>p</font>&#160;<font color=#000088>wu</font>&#160;<font color=#000088>wv</font>&#160;<font color=#666600>True</font></td><td valign="top">&#160;=&#160;(<font color=#000088>wu</font>&#160;<font color=#666600>:</font>&#160;<font color=#000088>ys</font>,<font color=#000088>zs</font>)</td></tr>
<tr><td valign="top"><font color=#000088>span1</font>&#160;</td><td valign="top"><font color=#000088>p</font>&#160;<font color=#000088>wu</font>&#160;<font color=#000088>wv</font>&#160;<font color=#666600>False</font></td><td valign="top">&#160;=&#160;<font color=#000088>span0</font>&#160;<font color=#000088>p</font>&#160;<font color=#000088>wu</font>&#160;<font color=#000088>wv</font>&#160;<font color=#000088>otherwise</font></td></tr>
</table></td></tr>
<tr><td></td><td valign="top"><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>vu43</font>&#160;</td><td valign="top"></td><td valign="top">&#160;=&#160;<font color=#000088>span</font>&#160;<font color=#000088>p</font>&#160;<font color=#000088>wv</font></td></tr>
</table></td></tr>
<tr><td></td><td valign="top"><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>ys</font>&#160;</td><td valign="top"></td><td valign="top">&#160;=&#160;<font color=#000088>ys1</font>&#160;<font color=#000088>vu43</font></td></tr>
</table></td></tr>
<tr><td></td><td valign="top"><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>ys1</font>&#160;</td><td valign="top">(<font color=#000088>ys</font>,<font color=#000088>wx</font>)</td><td valign="top">&#160;=&#160;<font color=#000088>ys</font></td></tr>
</table></td></tr>
<tr><td></td><td valign="top"><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>zs</font>&#160;</td><td valign="top"></td><td valign="top">&#160;=&#160;<font color=#000088>zs1</font>&#160;<font color=#000088>vu43</font></td></tr>
</table></td></tr>
<tr><td></td><td valign="top"><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>zs1</font>&#160;</td><td valign="top">(<font color=#000088>ww</font>,<font color=#000088>zs</font>)</td><td valign="top">&#160;=&#160;<font color=#000088>zs</font></td></tr>
</table></td></tr>
</table></td></tr>
</table></BLOCKQUOTE><BR><BLOCKQUOTE><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>span3</font>&#160;</td><td valign="top"><font color=#000088>p</font>&#160;<font color=#666600>[]</font></td><td valign="top">&#160;=&#160;(<font color=#666600>[]</font>,<font color=#666600>[]</font>)</td></tr>
<tr><td valign="top"><font color=#000088>span3</font>&#160;</td><td valign="top"><font color=#000088>xv</font>&#160;<font color=#000088>xw</font></td><td valign="top">&#160;=&#160;<font color=#000088>span2</font>&#160;<font color=#000088>xv</font>&#160;<font color=#000088>xw</font></td></tr>
</table></BLOCKQUOTE><BR><BR><BR><pre>&#8627 HASKELL</pre><pre>  &#8627 LR</pre><pre>    &#8627 HASKELL</pre><pre>      &#8627 BR</pre><pre>        &#8627 HASKELL</pre><pre>          &#8627 COR</pre><pre>            &#8627 <B>HASKELL</B></pre><pre>              &#8627 LetRed</pre><BR><html>
<body>mainModule Main<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>
                   &nbsp;
                </td><td>((<FONT COLOR="#000088">List.groupBy</FONT> :: (<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Bool</FONT>)&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[[<FONT COLOR="#000088">a</FONT>]]) :: (<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Bool</FONT>)&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[[<FONT COLOR="#000088">a</FONT>]])</td>
</tr>
</table>
<br>module List where<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">import qualified Main<br>import qualified Maybe<br>import qualified Prelude<br>
<br>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top"><FONT COLOR="#000088">groupBy</FONT> :: (<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Bool</FONT>)&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[[<FONT COLOR="#000088">a</FONT>]]<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">groupBy</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#000088">vw</FONT>&nbsp;<FONT COLOR="#666600">[]</FONT>&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#666600">[]</FONT></td>
</tr>
<tr>
<td valign="top"><FONT COLOR="#000088">groupBy</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#000088">eq</FONT>&nbsp;(<FONT COLOR="#000088">x</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">xs</FONT>)&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top">(<FONT COLOR="#000088">x</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">ys</FONT>)&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">groupBy</FONT> <FONT COLOR="#000088">eq</FONT> <FONT COLOR="#000088">zs</FONT></td><td valign="top">&nbsp;where&nbsp;</td><td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">vv10</FONT>&nbsp;</td><td valign="top"></td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">span</FONT> (<FONT COLOR="#000088">eq</FONT> <FONT COLOR="#000088">x</FONT>) <FONT COLOR="#000088">xs</FONT></td>
</tr>
</table>
</td>
</tr>
<tr>
<td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">ys</FONT>&nbsp;</td><td valign="top"></td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">ys0</FONT> <FONT COLOR="#000088">vv10</FONT></td>
</tr>
</table>
</td>
</tr>
<tr>
<td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">ys0</FONT>&nbsp;</td><td valign="top">(<FONT COLOR="#000088">ys</FONT>,<FONT COLOR="#000088">vx</FONT>)&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">ys</FONT></td>
</tr>
</table>
</td>
</tr>
<tr>
<td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">zs</FONT>&nbsp;</td><td valign="top"></td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">zs0</FONT> <FONT COLOR="#000088">vv10</FONT></td>
</tr>
</table>
</td>
</tr>
<tr>
<td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">zs0</FONT>&nbsp;</td><td valign="top">(<FONT COLOR="#000088">vy</FONT>,<FONT COLOR="#000088">zs</FONT>)&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">zs</FONT></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<BR>
</td>
</tr>
</table>
<br>module Main where<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">import qualified List<br>import qualified Maybe<br>import qualified Prelude<br>
<br>
</td>
</tr>
</table>
<br>module Maybe where<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">import qualified List<br>import qualified Main<br>import qualified Prelude<br>
<br>
</td>
</tr>
</table>
<br>
</body>
</html>
<BR>Let/Where Reductions:<BR>The bindings of the following Let/Where expression<BR><BLOCKQUOTE><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<td  valign="top" colspan="2">(<font color=#000088>x</font>&#160;<font color=#666600>:</font>&#160;<font color=#000088>ys</font>)&#160;<font color=#666600>:</font>&#160;<font color=#000088>groupBy</font>&#160;<font color=#000088>eq</font>&#160;<font color=#000088>zs</font></td></tr>
<tr><td valign="top">where&#160;</td><td valign="top"><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>vv10</font>&#160;</td><td valign="top"></td><td valign="top">&#160;=&#160;<font color=#000088>span</font>&#160;(<font color=#000088>eq</font>&#160;<font color=#000088>x</font>)&#160;<font color=#000088>xs</font></td></tr>
</table></td></tr>
<tr><td></td><td valign="top"><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>ys</font>&#160;</td><td valign="top"></td><td valign="top">&#160;=&#160;<font color=#000088>ys0</font>&#160;<font color=#000088>vv10</font></td></tr>
</table></td></tr>
<tr><td></td><td valign="top"><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>ys0</font>&#160;</td><td valign="top">(<font color=#000088>ys</font>,<font color=#000088>vx</font>)</td><td valign="top">&#160;=&#160;<font color=#000088>ys</font></td></tr>
</table></td></tr>
<tr><td></td><td valign="top"><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>zs</font>&#160;</td><td valign="top"></td><td valign="top">&#160;=&#160;<font color=#000088>zs0</font>&#160;<font color=#000088>vv10</font></td></tr>
</table></td></tr>
<tr><td></td><td valign="top"><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>zs0</font>&#160;</td><td valign="top">(<font color=#000088>vy</font>,<font color=#000088>zs</font>)</td><td valign="top">&#160;=&#160;<font color=#000088>zs</font></td></tr>
</table></td></tr>
</table></BLOCKQUOTE><BR>are unpacked to the following functions on top level<BR><BLOCKQUOTE><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>groupByYs</font>&#160;</td><td valign="top"><font color=#000088>xx</font>&#160;<font color=#000088>xy</font>&#160;<font color=#000088>xz</font></td><td valign="top">&#160;=&#160;<font color=#000088>groupByYs0</font>&#160;<font color=#000088>xx</font>&#160;<font color=#000088>xy</font>&#160;<font color=#000088>xz</font>&#160;(<font color=#000088>groupByVv10</font>&#160;<font color=#000088>xx</font>&#160;<font color=#000088>xy</font>&#160;<font color=#000088>xz</font>)</td></tr>
</table></BLOCKQUOTE><BR><BLOCKQUOTE><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>groupByVv10</font>&#160;</td><td valign="top"><font color=#000088>xx</font>&#160;<font color=#000088>xy</font>&#160;<font color=#000088>xz</font></td><td valign="top">&#160;=&#160;<font color=#000088>span</font>&#160;(<font color=#000088>xx</font>&#160;<font color=#000088>xy</font>)&#160;<font color=#000088>xz</font></td></tr>
</table></BLOCKQUOTE><BR><BLOCKQUOTE><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>groupByZs0</font>&#160;</td><td valign="top"><font color=#000088>xx</font>&#160;<font color=#000088>xy</font>&#160;<font color=#000088>xz</font>&#160;(<font color=#000088>vy</font>,<font color=#000088>zs</font>)</td><td valign="top">&#160;=&#160;<font color=#000088>zs</font></td></tr>
</table></BLOCKQUOTE><BR><BLOCKQUOTE><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>groupByZs</font>&#160;</td><td valign="top"><font color=#000088>xx</font>&#160;<font color=#000088>xy</font>&#160;<font color=#000088>xz</font></td><td valign="top">&#160;=&#160;<font color=#000088>groupByZs0</font>&#160;<font color=#000088>xx</font>&#160;<font color=#000088>xy</font>&#160;<font color=#000088>xz</font>&#160;(<font color=#000088>groupByVv10</font>&#160;<font color=#000088>xx</font>&#160;<font color=#000088>xy</font>&#160;<font color=#000088>xz</font>)</td></tr>
</table></BLOCKQUOTE><BR><BLOCKQUOTE><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>groupByYs0</font>&#160;</td><td valign="top"><font color=#000088>xx</font>&#160;<font color=#000088>xy</font>&#160;<font color=#000088>xz</font>&#160;(<font color=#000088>ys</font>,<font color=#000088>vx</font>)</td><td valign="top">&#160;=&#160;<font color=#000088>ys</font></td></tr>
</table></BLOCKQUOTE><BR>The bindings of the following Let/Where expression<BR><BLOCKQUOTE><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<td  valign="top" colspan="2"><font color=#000088>span1</font>&#160;<font color=#000088>p</font>&#160;<font color=#000088>wu</font>&#160;<font color=#000088>wv</font>&#160;(<font color=#000088>p</font>&#160;<font color=#000088>wu</font>)</td></tr>
<tr><td valign="top">where&#160;</td><td valign="top"><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>span0</font>&#160;</td><td valign="top"><font color=#000088>p</font>&#160;<font color=#000088>wu</font>&#160;<font color=#000088>wv</font>&#160;<font color=#666600>True</font></td><td valign="top">&#160;=&#160;(<font color=#666600>[]</font>,<font color=#000088>wu</font>&#160;<font color=#666600>:</font>&#160;<font color=#000088>wv</font>)</td></tr>
</table></td></tr>
<tr><td></td><td valign="top"><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>span1</font>&#160;</td><td valign="top"><font color=#000088>p</font>&#160;<font color=#000088>wu</font>&#160;<font color=#000088>wv</font>&#160;<font color=#666600>True</font></td><td valign="top">&#160;=&#160;(<font color=#000088>wu</font>&#160;<font color=#666600>:</font>&#160;<font color=#000088>ys</font>,<font color=#000088>zs</font>)</td></tr>
<tr><td valign="top"><font color=#000088>span1</font>&#160;</td><td valign="top"><font color=#000088>p</font>&#160;<font color=#000088>wu</font>&#160;<font color=#000088>wv</font>&#160;<font color=#666600>False</font></td><td valign="top">&#160;=&#160;<font color=#000088>span0</font>&#160;<font color=#000088>p</font>&#160;<font color=#000088>wu</font>&#160;<font color=#000088>wv</font>&#160;<font color=#000088>otherwise</font></td></tr>
</table></td></tr>
<tr><td></td><td valign="top"><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>vu43</font>&#160;</td><td valign="top"></td><td valign="top">&#160;=&#160;<font color=#000088>span</font>&#160;<font color=#000088>p</font>&#160;<font color=#000088>wv</font></td></tr>
</table></td></tr>
<tr><td></td><td valign="top"><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>ys</font>&#160;</td><td valign="top"></td><td valign="top">&#160;=&#160;<font color=#000088>ys1</font>&#160;<font color=#000088>vu43</font></td></tr>
</table></td></tr>
<tr><td></td><td valign="top"><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>ys1</font>&#160;</td><td valign="top">(<font color=#000088>ys</font>,<font color=#000088>wx</font>)</td><td valign="top">&#160;=&#160;<font color=#000088>ys</font></td></tr>
</table></td></tr>
<tr><td></td><td valign="top"><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>zs</font>&#160;</td><td valign="top"></td><td valign="top">&#160;=&#160;<font color=#000088>zs1</font>&#160;<font color=#000088>vu43</font></td></tr>
</table></td></tr>
<tr><td></td><td valign="top"><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>zs1</font>&#160;</td><td valign="top">(<font color=#000088>ww</font>,<font color=#000088>zs</font>)</td><td valign="top">&#160;=&#160;<font color=#000088>zs</font></td></tr>
</table></td></tr>
</table></BLOCKQUOTE><BR>are unpacked to the following functions on top level<BR><BLOCKQUOTE><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>span2Span1</font>&#160;</td><td valign="top"><font color=#000088>yu</font>&#160;<font color=#000088>yv</font>&#160;<font color=#000088>p</font>&#160;<font color=#000088>wu</font>&#160;<font color=#000088>wv</font>&#160;<font color=#666600>True</font></td><td valign="top">&#160;=&#160;(<font color=#000088>wu</font>&#160;<font color=#666600>:</font>&#160;<font color=#000088>span2Ys</font>&#160;<font color=#000088>yu</font>&#160;<font color=#000088>yv</font>,<font color=#000088>span2Zs</font>&#160;<font color=#000088>yu</font>&#160;<font color=#000088>yv</font>)</td></tr>
<tr><td valign="top"><font color=#000088>span2Span1</font>&#160;</td><td valign="top"><font color=#000088>yu</font>&#160;<font color=#000088>yv</font>&#160;<font color=#000088>p</font>&#160;<font color=#000088>wu</font>&#160;<font color=#000088>wv</font>&#160;<font color=#666600>False</font></td><td valign="top">&#160;=&#160;<font color=#000088>span2Span0</font>&#160;<font color=#000088>yu</font>&#160;<font color=#000088>yv</font>&#160;<font color=#000088>p</font>&#160;<font color=#000088>wu</font>&#160;<font color=#000088>wv</font>&#160;<font color=#000088>otherwise</font></td></tr>
</table></BLOCKQUOTE><BR><BLOCKQUOTE><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>span2Ys</font>&#160;</td><td valign="top"><font color=#000088>yu</font>&#160;<font color=#000088>yv</font></td><td valign="top">&#160;=&#160;<font color=#000088>span2Ys1</font>&#160;<font color=#000088>yu</font>&#160;<font color=#000088>yv</font>&#160;(<font color=#000088>span2Vu43</font>&#160;<font color=#000088>yu</font>&#160;<font color=#000088>yv</font>)</td></tr>
</table></BLOCKQUOTE><BR><BLOCKQUOTE><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>span2Ys1</font>&#160;</td><td valign="top"><font color=#000088>yu</font>&#160;<font color=#000088>yv</font>&#160;(<font color=#000088>ys</font>,<font color=#000088>wx</font>)</td><td valign="top">&#160;=&#160;<font color=#000088>ys</font></td></tr>
</table></BLOCKQUOTE><BR><BLOCKQUOTE><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>span2Zs1</font>&#160;</td><td valign="top"><font color=#000088>yu</font>&#160;<font color=#000088>yv</font>&#160;(<font color=#000088>ww</font>,<font color=#000088>zs</font>)</td><td valign="top">&#160;=&#160;<font color=#000088>zs</font></td></tr>
</table></BLOCKQUOTE><BR><BLOCKQUOTE><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>span2Zs</font>&#160;</td><td valign="top"><font color=#000088>yu</font>&#160;<font color=#000088>yv</font></td><td valign="top">&#160;=&#160;<font color=#000088>span2Zs1</font>&#160;<font color=#000088>yu</font>&#160;<font color=#000088>yv</font>&#160;(<font color=#000088>span2Vu43</font>&#160;<font color=#000088>yu</font>&#160;<font color=#000088>yv</font>)</td></tr>
</table></BLOCKQUOTE><BR><BLOCKQUOTE><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>span2Vu43</font>&#160;</td><td valign="top"><font color=#000088>yu</font>&#160;<font color=#000088>yv</font></td><td valign="top">&#160;=&#160;<font color=#000088>span</font>&#160;<font color=#000088>yu</font>&#160;<font color=#000088>yv</font></td></tr>
</table></BLOCKQUOTE><BR><BLOCKQUOTE><table cellspacing="0" cellpadding="0" border="0" frame="void" >
<tr><td valign="top"><font color=#000088>span2Span0</font>&#160;</td><td valign="top"><font color=#000088>yu</font>&#160;<font color=#000088>yv</font>&#160;<font color=#000088>p</font>&#160;<font color=#000088>wu</font>&#160;<font color=#000088>wv</font>&#160;<font color=#666600>True</font></td><td valign="top">&#160;=&#160;(<font color=#666600>[]</font>,<font color=#000088>wu</font>&#160;<font color=#666600>:</font>&#160;<font color=#000088>wv</font>)</td></tr>
</table></BLOCKQUOTE><BR><BR><BR><pre>&#8627 HASKELL</pre><pre>  &#8627 LR</pre><pre>    &#8627 HASKELL</pre><pre>      &#8627 BR</pre><pre>        &#8627 HASKELL</pre><pre>          &#8627 COR</pre><pre>            &#8627 HASKELL</pre><pre>              &#8627 LetRed</pre><pre>                &#8627 <B>HASKELL</B></pre><pre>                  &#8627 NumRed</pre><BR><html>
<body>mainModule Main<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>
                   &nbsp;
                </td><td>((<FONT COLOR="#000088">List.groupBy</FONT> :: (<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Bool</FONT>)&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[[<FONT COLOR="#000088">a</FONT>]]) :: (<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Bool</FONT>)&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[[<FONT COLOR="#000088">a</FONT>]])</td>
</tr>
</table>
<br>module List where<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">import qualified Main<br>import qualified Maybe<br>import qualified Prelude<br>
<br>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top"><FONT COLOR="#000088">groupBy</FONT> :: (<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Bool</FONT>)&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[[<FONT COLOR="#000088">a</FONT>]]<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">groupBy</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#000088">vw</FONT>&nbsp;<FONT COLOR="#666600">[]</FONT>&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#666600">[]</FONT></td>
</tr>
<tr>
<td valign="top"><FONT COLOR="#000088">groupBy</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#000088">eq</FONT>&nbsp;(<FONT COLOR="#000088">x</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">xs</FONT>)&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top">(<FONT COLOR="#000088">x</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">groupByYs</FONT> <FONT COLOR="#000088">eq</FONT> <FONT COLOR="#000088">x</FONT> <FONT COLOR="#000088">xs</FONT>)&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">groupBy</FONT> <FONT COLOR="#000088">eq</FONT> (<FONT COLOR="#000088">groupByZs</FONT> <FONT COLOR="#000088">eq</FONT> <FONT COLOR="#000088">x</FONT> <FONT COLOR="#000088">xs</FONT>)</td>
</tr>
</table>
<BR>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">groupByVv10</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#000088">xx</FONT>&nbsp;<FONT COLOR="#000088">xy</FONT>&nbsp;<FONT COLOR="#000088">xz</FONT>&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">span</FONT> (<FONT COLOR="#000088">xx</FONT> <FONT COLOR="#000088">xy</FONT>) <FONT COLOR="#000088">xz</FONT></td>
</tr>
</table>
<BR>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">groupByYs</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#000088">xx</FONT>&nbsp;<FONT COLOR="#000088">xy</FONT>&nbsp;<FONT COLOR="#000088">xz</FONT>&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">groupByYs0</FONT> <FONT COLOR="#000088">xx</FONT> <FONT COLOR="#000088">xy</FONT> <FONT COLOR="#000088">xz</FONT> (<FONT COLOR="#000088">groupByVv10</FONT> <FONT COLOR="#000088">xx</FONT> <FONT COLOR="#000088">xy</FONT> <FONT COLOR="#000088">xz</FONT>)</td>
</tr>
</table>
<BR>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">groupByYs0</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#000088">xx</FONT>&nbsp;<FONT COLOR="#000088">xy</FONT>&nbsp;<FONT COLOR="#000088">xz</FONT>&nbsp;(<FONT COLOR="#000088">ys</FONT>,<FONT COLOR="#000088">vx</FONT>)&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">ys</FONT></td>
</tr>
</table>
<BR>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">groupByZs</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#000088">xx</FONT>&nbsp;<FONT COLOR="#000088">xy</FONT>&nbsp;<FONT COLOR="#000088">xz</FONT>&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">groupByZs0</FONT> <FONT COLOR="#000088">xx</FONT> <FONT COLOR="#000088">xy</FONT> <FONT COLOR="#000088">xz</FONT> (<FONT COLOR="#000088">groupByVv10</FONT> <FONT COLOR="#000088">xx</FONT> <FONT COLOR="#000088">xy</FONT> <FONT COLOR="#000088">xz</FONT>)</td>
</tr>
</table>
<BR>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">groupByZs0</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#000088">xx</FONT>&nbsp;<FONT COLOR="#000088">xy</FONT>&nbsp;<FONT COLOR="#000088">xz</FONT>&nbsp;(<FONT COLOR="#000088">vy</FONT>,<FONT COLOR="#000088">zs</FONT>)&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">zs</FONT></td>
</tr>
</table>
<BR>
</td>
</tr>
</table>
<br>module Main where<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">import qualified List<br>import qualified Maybe<br>import qualified Prelude<br>
<br>
</td>
</tr>
</table>
<br>module Maybe where<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">import qualified List<br>import qualified Main<br>import qualified Prelude<br>
<br>
</td>
</tr>
</table>
<br>
</body>
</html>
<BR>Num Reduction:All numbers are transformed to thier corresponding representation with Succ, Pred and Zero.<BR><BR><pre>&#8627 HASKELL</pre><pre>  &#8627 LR</pre><pre>    &#8627 HASKELL</pre><pre>      &#8627 BR</pre><pre>        &#8627 HASKELL</pre><pre>          &#8627 COR</pre><pre>            &#8627 HASKELL</pre><pre>              &#8627 LetRed</pre><pre>                &#8627 HASKELL</pre><pre>                  &#8627 NumRed</pre><pre>                    &#8627 <B>HASKELL</B></pre><pre>                      &#8627 Narrow</pre><BR><html>
<body>mainModule Main<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>
                   &nbsp;
                </td><td>(<FONT COLOR="#000088">List.groupBy</FONT> :: (<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Bool</FONT>)&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[[<FONT COLOR="#000088">a</FONT>]])</td>
</tr>
</table>
<br>module List where<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">import qualified Main<br>import qualified Maybe<br>import qualified Prelude<br>
<br>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top"><FONT COLOR="#000088">groupBy</FONT> :: (<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#000088">a</FONT>&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;<FONT COLOR="#666600">Bool</FONT>)&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[<FONT COLOR="#000088">a</FONT>]&nbsp;<FONT COLOR="#666600">&nbsp;-&gt;&nbsp;</FONT>&nbsp;[[<FONT COLOR="#000088">a</FONT>]]<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">groupBy</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#000088">vw</FONT>&nbsp;<FONT COLOR="#666600">[]</FONT>&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#666600">[]</FONT></td>
</tr>
<tr>
<td valign="top"><FONT COLOR="#000088">groupBy</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#000088">eq</FONT>&nbsp;(<FONT COLOR="#000088">x</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">xs</FONT>)&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top">(<FONT COLOR="#000088">x</FONT>&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">groupByYs</FONT> <FONT COLOR="#000088">eq</FONT> <FONT COLOR="#000088">x</FONT> <FONT COLOR="#000088">xs</FONT>)&nbsp;<FONT COLOR="#666600">:</FONT>&nbsp;<FONT COLOR="#000088">groupBy</FONT> <FONT COLOR="#000088">eq</FONT> (<FONT COLOR="#000088">groupByZs</FONT> <FONT COLOR="#000088">eq</FONT> <FONT COLOR="#000088">x</FONT> <FONT COLOR="#000088">xs</FONT>)</td>
</tr>
</table>
<BR>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">groupByVv10</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#000088">xx</FONT>&nbsp;<FONT COLOR="#000088">xy</FONT>&nbsp;<FONT COLOR="#000088">xz</FONT>&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">span</FONT> (<FONT COLOR="#000088">xx</FONT> <FONT COLOR="#000088">xy</FONT>) <FONT COLOR="#000088">xz</FONT></td>
</tr>
</table>
<BR>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">groupByYs</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#000088">xx</FONT>&nbsp;<FONT COLOR="#000088">xy</FONT>&nbsp;<FONT COLOR="#000088">xz</FONT>&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">groupByYs0</FONT> <FONT COLOR="#000088">xx</FONT> <FONT COLOR="#000088">xy</FONT> <FONT COLOR="#000088">xz</FONT> (<FONT COLOR="#000088">groupByVv10</FONT> <FONT COLOR="#000088">xx</FONT> <FONT COLOR="#000088">xy</FONT> <FONT COLOR="#000088">xz</FONT>)</td>
</tr>
</table>
<BR>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">groupByYs0</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#000088">xx</FONT>&nbsp;<FONT COLOR="#000088">xy</FONT>&nbsp;<FONT COLOR="#000088">xz</FONT>&nbsp;(<FONT COLOR="#000088">ys</FONT>,<FONT COLOR="#000088">vx</FONT>)&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">ys</FONT></td>
</tr>
</table>
<BR>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">groupByZs</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#000088">xx</FONT>&nbsp;<FONT COLOR="#000088">xy</FONT>&nbsp;<FONT COLOR="#000088">xz</FONT>&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">groupByZs0</FONT> <FONT COLOR="#000088">xx</FONT> <FONT COLOR="#000088">xy</FONT> <FONT COLOR="#000088">xz</FONT> (<FONT COLOR="#000088">groupByVv10</FONT> <FONT COLOR="#000088">xx</FONT> <FONT COLOR="#000088">xy</FONT> <FONT COLOR="#000088">xz</FONT>)</td>
</tr>
</table>
<BR>
</td>
</tr>
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td valign="top"><FONT COLOR="#000088">groupByZs0</FONT>&nbsp;</td><td valign="top"><FONT COLOR="#000088">xx</FONT>&nbsp;<FONT COLOR="#000088">xy</FONT>&nbsp;<FONT COLOR="#000088">xz</FONT>&nbsp;(<FONT COLOR="#000088">vy</FONT>,<FONT COLOR="#000088">zs</FONT>)&nbsp;</td><td valign="top">=&nbsp;</td><td valign="top"><FONT COLOR="#000088">zs</FONT></td>
</tr>
</table>
<BR>
</td>
</tr>
</table>
<br>module Main where<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">import qualified List<br>import qualified Maybe<br>import qualified Prelude<br>
<br>
</td>
</tr>
</table>
<br>module Maybe where<br>
<table cellspacing="0" cellpadding="0" border="0" frame="void">
<tr>
<td>&nbsp;&nbsp;</td><td valign="top">import qualified List<br>import qualified Main<br>import qualified Prelude<br>
<br>
</td>
</tr>
</table>
<br>
</body>
</html>
<BR>Haskell To QDPs<BR><textarea cols="80" rows="25">digraph dp_graph {
node [outthreshold=100, inthreshold=100];1[label="List.groupBy\n",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3];
3[label="List.groupBy yw3\n",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3];
4[label="List.groupBy yw3 yw4\n",fontsize=16,color="burlywood",shape="triangle"];113[label="yw4/yw40 : yw41",fontsize=10,color="white",style="solid",shape="box"];4 -> 113[label="",style="solid", color="burlywood", weight=9];
113 -> 5[label="",style="solid", color="burlywood", weight=3];
114[label="yw4/[]",fontsize=10,color="white",style="solid",shape="box"];4 -> 114[label="",style="solid", color="burlywood", weight=9];
114 -> 6[label="",style="solid", color="burlywood", weight=3];
5[label="List.groupBy yw3 (yw40 : yw41)\n",fontsize=16,color="black",shape="box"];5 -> 7[label="",style="solid", color="black", weight=3];
6[label="List.groupBy yw3 []\n",fontsize=16,color="black",shape="box"];6 -> 8[label="",style="solid", color="black", weight=3];
7[label="(yw40 : List.groupByYs yw3 yw40 yw41) : List.groupBy yw3 (List.groupByZs yw3 yw40 yw41)\n",fontsize=16,color="green",shape="box"];7 -> 9[label="",style="dashed", color="green", weight=3];
7 -> 10[label="",style="dashed", color="green", weight=3];
8[label="[]\n",fontsize=16,color="green",shape="box"];9[label="List.groupByYs yw3 yw40 yw41\n",fontsize=16,color="black",shape="box"];9 -> 11[label="",style="solid", color="black", weight=3];
10 -> 4[label="",style="dashed", color="red", weight=0];
10[label="List.groupBy yw3 (List.groupByZs yw3 yw40 yw41)\n",fontsize=16,color="magenta"];10 -> 12[label="",style="dashed", color="magenta", weight=3];
11[label="List.groupByYs0 yw3 yw40 yw41 (List.groupByVv10 yw3 yw40 yw41)\n",fontsize=16,color="black",shape="box"];11 -> 13[label="",style="solid", color="black", weight=3];
12[label="List.groupByZs yw3 yw40 yw41\n",fontsize=16,color="black",shape="box"];12 -> 14[label="",style="solid", color="black", weight=3];
13[label="List.groupByYs0 yw3 yw40 yw41 (span (yw3 yw40) yw41)\n",fontsize=16,color="burlywood",shape="box"];116[label="yw41/yw410 : yw411",fontsize=10,color="white",style="solid",shape="box"];13 -> 116[label="",style="solid", color="burlywood", weight=9];
116 -> 15[label="",style="solid", color="burlywood", weight=3];
117[label="yw41/[]",fontsize=10,color="white",style="solid",shape="box"];13 -> 117[label="",style="solid", color="burlywood", weight=9];
117 -> 16[label="",style="solid", color="burlywood", weight=3];
14[label="List.groupByZs0 yw3 yw40 yw41 (List.groupByVv10 yw3 yw40 yw41)\n",fontsize=16,color="black",shape="box"];14 -> 17[label="",style="solid", color="black", weight=3];
15[label="List.groupByYs0 yw3 yw40 (yw410 : yw411) (span (yw3 yw40) (yw410 : yw411))\n",fontsize=16,color="black",shape="box"];15 -> 18[label="",style="solid", color="black", weight=3];
16[label="List.groupByYs0 yw3 yw40 [] (span (yw3 yw40) [])\n",fontsize=16,color="black",shape="box"];16 -> 19[label="",style="solid", color="black", weight=3];
17[label="List.groupByZs0 yw3 yw40 yw41 (span (yw3 yw40) yw41)\n",fontsize=16,color="burlywood",shape="box"];118[label="yw41/yw410 : yw411",fontsize=10,color="white",style="solid",shape="box"];17 -> 118[label="",style="solid", color="burlywood", weight=9];
118 -> 20[label="",style="solid", color="burlywood", weight=3];
119[label="yw41/[]",fontsize=10,color="white",style="solid",shape="box"];17 -> 119[label="",style="solid", color="burlywood", weight=9];
119 -> 21[label="",style="solid", color="burlywood", weight=3];
18[label="List.groupByYs0 yw3 yw40 (yw410 : yw411) (span2 (yw3 yw40) (yw410 : yw411))\n",fontsize=16,color="black",shape="box"];18 -> 22[label="",style="solid", color="black", weight=3];
19[label="List.groupByYs0 yw3 yw40 [] (span3 (yw3 yw40) [])\n",fontsize=16,color="black",shape="box"];19 -> 23[label="",style="solid", color="black", weight=3];
20[label="List.groupByZs0 yw3 yw40 (yw410 : yw411) (span (yw3 yw40) (yw410 : yw411))\n",fontsize=16,color="black",shape="box"];20 -> 24[label="",style="solid", color="black", weight=3];
21[label="List.groupByZs0 yw3 yw40 [] (span (yw3 yw40) [])\n",fontsize=16,color="black",shape="box"];21 -> 25[label="",style="solid", color="black", weight=3];
22 -> 26[label="",style="dashed", color="red", weight=0];
22[label="List.groupByYs0 yw3 yw40 (yw410 : yw411) (span2Span1 (yw3 yw40) yw411 (yw3 yw40) yw410 yw411 (yw3 yw40 yw410))\n",fontsize=16,color="magenta"];22 -> 27[label="",style="dashed", color="magenta", weight=3];
23[label="List.groupByYs0 yw3 yw40 [] ([],[])\n",fontsize=16,color="black",shape="box"];23 -> 28[label="",style="solid", color="black", weight=3];
24[label="List.groupByZs0 yw3 yw40 (yw410 : yw411) (span2 (yw3 yw40) (yw410 : yw411))\n",fontsize=16,color="black",shape="box"];24 -> 29[label="",style="solid", color="black", weight=3];
25[label="List.groupByZs0 yw3 yw40 [] (span3 (yw3 yw40) [])\n",fontsize=16,color="black",shape="box"];25 -> 30[label="",style="solid", color="black", weight=3];
27[label="yw3 yw40 yw410\n",fontsize=16,color="green",shape="box"];27 -> 35[label="",style="dashed", color="green", weight=3];
27 -> 36[label="",style="dashed", color="green", weight=3];
26[label="List.groupByYs0 yw3 yw40 (yw410 : yw411) (span2Span1 (yw3 yw40) yw411 (yw3 yw40) yw410 yw411 yw5)\n",fontsize=16,color="burlywood",shape="triangle"];121[label="yw5/False",fontsize=10,color="white",style="solid",shape="box"];26 -> 121[label="",style="solid", color="burlywood", weight=9];
121 -> 33[label="",style="solid", color="burlywood", weight=3];
122[label="yw5/True",fontsize=10,color="white",style="solid",shape="box"];26 -> 122[label="",style="solid", color="burlywood", weight=9];
122 -> 34[label="",style="solid", color="burlywood", weight=3];
28[label="[]\n",fontsize=16,color="green",shape="box"];29 -> 37[label="",style="dashed", color="red", weight=0];
29[label="List.groupByZs0 yw3 yw40 (yw410 : yw411) (span2Span1 (yw3 yw40) yw411 (yw3 yw40) yw410 yw411 (yw3 yw40 yw410))\n",fontsize=16,color="magenta"];29 -> 38[label="",style="dashed", color="magenta", weight=3];
30[label="List.groupByZs0 yw3 yw40 [] ([],[])\n",fontsize=16,color="black",shape="box"];30 -> 39[label="",style="solid", color="black", weight=3];
35[label="yw40\n",fontsize=16,color="green",shape="box"];36[label="yw410\n",fontsize=16,color="green",shape="box"];33[label="List.groupByYs0 yw3 yw40 (yw410 : yw411) (span2Span1 (yw3 yw40) yw411 (yw3 yw40) yw410 yw411 False)\n",fontsize=16,color="black",shape="box"];33 -> 40[label="",style="solid", color="black", weight=3];
34[label="List.groupByYs0 yw3 yw40 (yw410 : yw411) (span2Span1 (yw3 yw40) yw411 (yw3 yw40) yw410 yw411 True)\n",fontsize=16,color="black",shape="box"];34 -> 41[label="",style="solid", color="black", weight=3];
38[label="yw3 yw40 yw410\n",fontsize=16,color="green",shape="box"];38 -> 46[label="",style="dashed", color="green", weight=3];
38 -> 47[label="",style="dashed", color="green", weight=3];
37[label="List.groupByZs0 yw3 yw40 (yw410 : yw411) (span2Span1 (yw3 yw40) yw411 (yw3 yw40) yw410 yw411 yw6)\n",fontsize=16,color="burlywood",shape="triangle"];124[label="yw6/False",fontsize=10,color="white",style="solid",shape="box"];37 -> 124[label="",style="solid", color="burlywood", weight=9];
124 -> 44[label="",style="solid", color="burlywood", weight=3];
125[label="yw6/True",fontsize=10,color="white",style="solid",shape="box"];37 -> 125[label="",style="solid", color="burlywood", weight=9];
125 -> 45[label="",style="solid", color="burlywood", weight=3];
39[label="[]\n",fontsize=16,color="green",shape="box"];40[label="List.groupByYs0 yw3 yw40 (yw410 : yw411) (span2Span0 (yw3 yw40) yw411 (yw3 yw40) yw410 yw411 otherwise)\n",fontsize=16,color="black",shape="box"];40 -> 48[label="",style="solid", color="black", weight=3];
41[label="List.groupByYs0 yw3 yw40 (yw410 : yw411) (yw410 : span2Ys (yw3 yw40) yw411,span2Zs (yw3 yw40) yw411)\n",fontsize=16,color="black",shape="box"];41 -> 49[label="",style="solid", color="black", weight=3];
46[label="yw40\n",fontsize=16,color="green",shape="box"];47[label="yw410\n",fontsize=16,color="green",shape="box"];44[label="List.groupByZs0 yw3 yw40 (yw410 : yw411) (span2Span1 (yw3 yw40) yw411 (yw3 yw40) yw410 yw411 False)\n",fontsize=16,color="black",shape="box"];44 -> 50[label="",style="solid", color="black", weight=3];
45[label="List.groupByZs0 yw3 yw40 (yw410 : yw411) (span2Span1 (yw3 yw40) yw411 (yw3 yw40) yw410 yw411 True)\n",fontsize=16,color="black",shape="box"];45 -> 51[label="",style="solid", color="black", weight=3];
48[label="List.groupByYs0 yw3 yw40 (yw410 : yw411) (span2Span0 (yw3 yw40) yw411 (yw3 yw40) yw410 yw411 True)\n",fontsize=16,color="black",shape="box"];48 -> 52[label="",style="solid", color="black", weight=3];
49[label="yw410 : span2Ys (yw3 yw40) yw411\n",fontsize=16,color="green",shape="box"];49 -> 53[label="",style="dashed", color="green", weight=3];
50[label="List.groupByZs0 yw3 yw40 (yw410 : yw411) (span2Span0 (yw3 yw40) yw411 (yw3 yw40) yw410 yw411 otherwise)\n",fontsize=16,color="black",shape="box"];50 -> 54[label="",style="solid", color="black", weight=3];
51[label="List.groupByZs0 yw3 yw40 (yw410 : yw411) (yw410 : span2Ys (yw3 yw40) yw411,span2Zs (yw3 yw40) yw411)\n",fontsize=16,color="black",shape="box"];51 -> 55[label="",style="solid", color="black", weight=3];
52[label="List.groupByYs0 yw3 yw40 (yw410 : yw411) ([],yw410 : yw411)\n",fontsize=16,color="black",shape="box"];52 -> 56[label="",style="solid", color="black", weight=3];
53[label="span2Ys (yw3 yw40) yw411\n",fontsize=16,color="black",shape="triangle"];53 -> 57[label="",style="solid", color="black", weight=3];
54[label="List.groupByZs0 yw3 yw40 (yw410 : yw411) (span2Span0 (yw3 yw40) yw411 (yw3 yw40) yw410 yw411 True)\n",fontsize=16,color="black",shape="box"];54 -> 58[label="",style="solid", color="black", weight=3];
55[label="span2Zs (yw3 yw40) yw411\n",fontsize=16,color="black",shape="triangle"];55 -> 59[label="",style="solid", color="black", weight=3];
56[label="[]\n",fontsize=16,color="green",shape="box"];57[label="span2Ys1 (yw3 yw40) yw411 (span2Vu43 (yw3 yw40) yw411)\n",fontsize=16,color="black",shape="box"];57 -> 60[label="",style="solid", color="black", weight=3];
58[label="List.groupByZs0 yw3 yw40 (yw410 : yw411) ([],yw410 : yw411)\n",fontsize=16,color="black",shape="box"];58 -> 61[label="",style="solid", color="black", weight=3];
59[label="span2Zs1 (yw3 yw40) yw411 (span2Vu43 (yw3 yw40) yw411)\n",fontsize=16,color="black",shape="box"];59 -> 62[label="",style="solid", color="black", weight=3];
60[label="span2Ys1 (yw3 yw40) yw411 (span (yw3 yw40) yw411)\n",fontsize=16,color="burlywood",shape="box"];126[label="yw411/yw4110 : yw4111",fontsize=10,color="white",style="solid",shape="box"];60 -> 126[label="",style="solid", color="burlywood", weight=9];
126 -> 63[label="",style="solid", color="burlywood", weight=3];
127[label="yw411/[]",fontsize=10,color="white",style="solid",shape="box"];60 -> 127[label="",style="solid", color="burlywood", weight=9];
127 -> 64[label="",style="solid", color="burlywood", weight=3];
61[label="yw410 : yw411\n",fontsize=16,color="green",shape="box"];62[label="span2Zs1 (yw3 yw40) yw411 (span (yw3 yw40) yw411)\n",fontsize=16,color="burlywood",shape="box"];128[label="yw411/yw4110 : yw4111",fontsize=10,color="white",style="solid",shape="box"];62 -> 128[label="",style="solid", color="burlywood", weight=9];
128 -> 65[label="",style="solid", color="burlywood", weight=3];
129[label="yw411/[]",fontsize=10,color="white",style="solid",shape="box"];62 -> 129[label="",style="solid", color="burlywood", weight=9];
129 -> 66[label="",style="solid", color="burlywood", weight=3];
63[label="span2Ys1 (yw3 yw40) (yw4110 : yw4111) (span (yw3 yw40) (yw4110 : yw4111))\n",fontsize=16,color="black",shape="box"];63 -> 67[label="",style="solid", color="black", weight=3];
64[label="span2Ys1 (yw3 yw40) [] (span (yw3 yw40) [])\n",fontsize=16,color="black",shape="box"];64 -> 68[label="",style="solid", color="black", weight=3];
65[label="span2Zs1 (yw3 yw40) (yw4110 : yw4111) (span (yw3 yw40) (yw4110 : yw4111))\n",fontsize=16,color="black",shape="box"];65 -> 69[label="",style="solid", color="black", weight=3];
66[label="span2Zs1 (yw3 yw40) [] (span (yw3 yw40) [])\n",fontsize=16,color="black",shape="box"];66 -> 70[label="",style="solid", color="black", weight=3];
67[label="span2Ys1 (yw3 yw40) (yw4110 : yw4111) (span2 (yw3 yw40) (yw4110 : yw4111))\n",fontsize=16,color="black",shape="box"];67 -> 71[label="",style="solid", color="black", weight=3];
68[label="span2Ys1 (yw3 yw40) [] (span3 (yw3 yw40) [])\n",fontsize=16,color="black",shape="box"];68 -> 72[label="",style="solid", color="black", weight=3];
69[label="span2Zs1 (yw3 yw40) (yw4110 : yw4111) (span2 (yw3 yw40) (yw4110 : yw4111))\n",fontsize=16,color="black",shape="box"];69 -> 73[label="",style="solid", color="black", weight=3];
70[label="span2Zs1 (yw3 yw40) [] (span3 (yw3 yw40) [])\n",fontsize=16,color="black",shape="box"];70 -> 74[label="",style="solid", color="black", weight=3];
71 -> 75[label="",style="dashed", color="red", weight=0];
71[label="span2Ys1 (yw3 yw40) (yw4110 : yw4111) (span2Span1 (yw3 yw40) yw4111 (yw3 yw40) yw4110 yw4111 (yw3 yw40 yw4110))\n",fontsize=16,color="magenta"];71 -> 76[label="",style="dashed", color="magenta", weight=3];
72[label="span2Ys1 (yw3 yw40) [] ([],[])\n",fontsize=16,color="black",shape="box"];72 -> 77[label="",style="solid", color="black", weight=3];
73 -> 78[label="",style="dashed", color="red", weight=0];
73[label="span2Zs1 (yw3 yw40) (yw4110 : yw4111) (span2Span1 (yw3 yw40) yw4111 (yw3 yw40) yw4110 yw4111 (yw3 yw40 yw4110))\n",fontsize=16,color="magenta"];73 -> 79[label="",style="dashed", color="magenta", weight=3];
74[label="span2Zs1 (yw3 yw40) [] ([],[])\n",fontsize=16,color="black",shape="box"];74 -> 80[label="",style="solid", color="black", weight=3];
76[label="yw3 yw40 yw4110\n",fontsize=16,color="green",shape="box"];76 -> 81[label="",style="dashed", color="green", weight=3];
76 -> 82[label="",style="dashed", color="green", weight=3];
75[label="span2Ys1 (yw3 yw40) (yw4110 : yw4111) (span2Span1 (yw3 yw40) yw4111 (yw3 yw40) yw4110 yw4111 yw7)\n",fontsize=16,color="burlywood",shape="triangle"];132[label="yw7/False",fontsize=10,color="white",style="solid",shape="box"];75 -> 132[label="",style="solid", color="burlywood", weight=9];
132 -> 83[label="",style="solid", color="burlywood", weight=3];
133[label="yw7/True",fontsize=10,color="white",style="solid",shape="box"];75 -> 133[label="",style="solid", color="burlywood", weight=9];
133 -> 84[label="",style="solid", color="burlywood", weight=3];
77[label="[]\n",fontsize=16,color="green",shape="box"];79[label="yw3 yw40 yw4110\n",fontsize=16,color="green",shape="box"];79 -> 89[label="",style="dashed", color="green", weight=3];
79 -> 90[label="",style="dashed", color="green", weight=3];
78[label="span2Zs1 (yw3 yw40) (yw4110 : yw4111) (span2Span1 (yw3 yw40) yw4111 (yw3 yw40) yw4110 yw4111 yw8)\n",fontsize=16,color="burlywood",shape="triangle"];134[label="yw8/False",fontsize=10,color="white",style="solid",shape="box"];78 -> 134[label="",style="solid", color="burlywood", weight=9];
134 -> 87[label="",style="solid", color="burlywood", weight=3];
135[label="yw8/True",fontsize=10,color="white",style="solid",shape="box"];78 -> 135[label="",style="solid", color="burlywood", weight=9];
135 -> 88[label="",style="solid", color="burlywood", weight=3];
80[label="[]\n",fontsize=16,color="green",shape="box"];81[label="yw40\n",fontsize=16,color="green",shape="box"];82[label="yw4110\n",fontsize=16,color="green",shape="box"];83[label="span2Ys1 (yw3 yw40) (yw4110 : yw4111) (span2Span1 (yw3 yw40) yw4111 (yw3 yw40) yw4110 yw4111 False)\n",fontsize=16,color="black",shape="box"];83 -> 91[label="",style="solid", color="black", weight=3];
84[label="span2Ys1 (yw3 yw40) (yw4110 : yw4111) (span2Span1 (yw3 yw40) yw4111 (yw3 yw40) yw4110 yw4111 True)\n",fontsize=16,color="black",shape="box"];84 -> 92[label="",style="solid", color="black", weight=3];
89[label="yw40\n",fontsize=16,color="green",shape="box"];90[label="yw4110\n",fontsize=16,color="green",shape="box"];87[label="span2Zs1 (yw3 yw40) (yw4110 : yw4111) (span2Span1 (yw3 yw40) yw4111 (yw3 yw40) yw4110 yw4111 False)\n",fontsize=16,color="black",shape="box"];87 -> 93[label="",style="solid", color="black", weight=3];
88[label="span2Zs1 (yw3 yw40) (yw4110 : yw4111) (span2Span1 (yw3 yw40) yw4111 (yw3 yw40) yw4110 yw4111 True)\n",fontsize=16,color="black",shape="box"];88 -> 94[label="",style="solid", color="black", weight=3];
91[label="span2Ys1 (yw3 yw40) (yw4110 : yw4111) (span2Span0 (yw3 yw40) yw4111 (yw3 yw40) yw4110 yw4111 otherwise)\n",fontsize=16,color="black",shape="box"];91 -> 95[label="",style="solid", color="black", weight=3];
92 -> 96[label="",style="dashed", color="red", weight=0];
92[label="span2Ys1 (yw3 yw40) (yw4110 : yw4111) (yw4110 : span2Ys (yw3 yw40) yw4111,span2Zs (yw3 yw40) yw4111)\n",fontsize=16,color="magenta"];92 -> 97[label="",style="dashed", color="magenta", weight=3];
92 -> 98[label="",style="dashed", color="magenta", weight=3];
93[label="span2Zs1 (yw3 yw40) (yw4110 : yw4111) (span2Span0 (yw3 yw40) yw4111 (yw3 yw40) yw4110 yw4111 otherwise)\n",fontsize=16,color="black",shape="box"];93 -> 99[label="",style="solid", color="black", weight=3];
94 -> 100[label="",style="dashed", color="red", weight=0];
94[label="span2Zs1 (yw3 yw40) (yw4110 : yw4111) (yw4110 : span2Ys (yw3 yw40) yw4111,span2Zs (yw3 yw40) yw4111)\n",fontsize=16,color="magenta"];94 -> 101[label="",style="dashed", color="magenta", weight=3];
94 -> 102[label="",style="dashed", color="magenta", weight=3];
95[label="span2Ys1 (yw3 yw40) (yw4110 : yw4111) (span2Span0 (yw3 yw40) yw4111 (yw3 yw40) yw4110 yw4111 True)\n",fontsize=16,color="black",shape="box"];95 -> 103[label="",style="solid", color="black", weight=3];
97 -> 55[label="",style="dashed", color="red", weight=0];
97[label="span2Zs (yw3 yw40) yw4111\n",fontsize=16,color="magenta"];97 -> 104[label="",style="dashed", color="magenta", weight=3];
98 -> 53[label="",style="dashed", color="red", weight=0];
98[label="span2Ys (yw3 yw40) yw4111\n",fontsize=16,color="magenta"];98 -> 105[label="",style="dashed", color="magenta", weight=3];
96[label="span2Ys1 (yw3 yw40) (yw4110 : yw4111) (yw4110 : yw10,yw9)\n",fontsize=16,color="black",shape="triangle"];96 -> 106[label="",style="solid", color="black", weight=3];
99[label="span2Zs1 (yw3 yw40) (yw4110 : yw4111) (span2Span0 (yw3 yw40) yw4111 (yw3 yw40) yw4110 yw4111 True)\n",fontsize=16,color="black",shape="box"];99 -> 107[label="",style="solid", color="black", weight=3];
101 -> 53[label="",style="dashed", color="red", weight=0];
101[label="span2Ys (yw3 yw40) yw4111\n",fontsize=16,color="magenta"];101 -> 108[label="",style="dashed", color="magenta", weight=3];
102 -> 55[label="",style="dashed", color="red", weight=0];
102[label="span2Zs (yw3 yw40) yw4111\n",fontsize=16,color="magenta"];102 -> 109[label="",style="dashed", color="magenta", weight=3];
100[label="span2Zs1 (yw3 yw40) (yw4110 : yw4111) (yw4110 : yw12,yw11)\n",fontsize=16,color="black",shape="triangle"];100 -> 110[label="",style="solid", color="black", weight=3];
103[label="span2Ys1 (yw3 yw40) (yw4110 : yw4111) ([],yw4110 : yw4111)\n",fontsize=16,color="black",shape="box"];103 -> 111[label="",style="solid", color="black", weight=3];
104[label="yw4111\n",fontsize=16,color="green",shape="box"];105[label="yw4111\n",fontsize=16,color="green",shape="box"];106[label="yw4110 : yw10\n",fontsize=16,color="green",shape="box"];107[label="span2Zs1 (yw3 yw40) (yw4110 : yw4111) ([],yw4110 : yw4111)\n",fontsize=16,color="black",shape="box"];107 -> 112[label="",style="solid", color="black", weight=3];
108[label="yw4111\n",fontsize=16,color="green",shape="box"];109[label="yw4111\n",fontsize=16,color="green",shape="box"];110[label="yw11\n",fontsize=16,color="green",shape="box"];111[label="[]\n",fontsize=16,color="green",shape="box"];112[label="yw4110 : yw4111\n",fontsize=16,color="green",shape="box"];}
</textarea><BR><BR><pre>&#8627 HASKELL</pre><pre>  &#8627 LR</pre><pre>    &#8627 HASKELL</pre><pre>      &#8627 BR</pre><pre>        &#8627 HASKELL</pre><pre>          &#8627 COR</pre><pre>            &#8627 HASKELL</pre><pre>              &#8627 LetRed</pre><pre>                &#8627 HASKELL</pre><pre>                  &#8627 NumRed</pre><pre>                    &#8627 HASKELL</pre><pre>                      &#8627 Narrow</pre><pre>                        &#8627 AND</pre><pre>                          &#8627 <B>QDP</B></pre><pre>                            &#8627 QDPSizeChangeProof</pre><pre>                          &#8627 QDP</pre><BR>Q DP problem:<BR>The TRS P consists of the following rules:<BR><BLOCKQUOTE><BR><FONT COLOR=#0000cc>new_span2Zs1</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>yw40</font>, <FONT COLOR=#cc0000>yw4110</font>, <FONT COLOR=#cc0000>yw4111</font>, <FONT COLOR=#cc0000>ba</font>) &#8594; <FONT COLOR=#0000cc>new_span2Ys</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>yw40</font>, <FONT COLOR=#cc0000>yw4111</font>, <FONT COLOR=#cc0000>ba</font>)
<BR><FONT COLOR=#0000cc>new_span2Ys1</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>yw40</font>, <FONT COLOR=#cc0000>yw4110</font>, <FONT COLOR=#cc0000>yw4111</font>, <FONT COLOR=#cc0000>ba</font>) &#8594; <FONT COLOR=#0000cc>new_span2Ys</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>yw40</font>, <FONT COLOR=#cc0000>yw4111</font>, <FONT COLOR=#cc0000>ba</font>)
<BR><FONT COLOR=#0000cc>new_span2Zs1</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>yw40</font>, <FONT COLOR=#cc0000>yw4110</font>, <FONT COLOR=#cc0000>yw4111</font>, <FONT COLOR=#cc0000>ba</font>) &#8594; <FONT COLOR=#0000cc>new_span2Zs</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>yw40</font>, <FONT COLOR=#cc0000>yw4111</font>, <FONT COLOR=#cc0000>ba</font>)
<BR><FONT COLOR=#0000cc>new_span2Ys</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>yw40</font>, <FONT COLOR=#0000cc>:</font>(<FONT COLOR=#cc0000>yw4110</font>, <FONT COLOR=#cc0000>yw4111</font>), <FONT COLOR=#cc0000>ba</font>) &#8594; <FONT COLOR=#0000cc>new_span2Ys1</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>yw40</font>, <FONT COLOR=#cc0000>yw4110</font>, <FONT COLOR=#cc0000>yw4111</font>, <FONT COLOR=#cc0000>ba</font>)
<BR><FONT COLOR=#0000cc>new_span2Zs</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>yw40</font>, <FONT COLOR=#0000cc>:</font>(<FONT COLOR=#cc0000>yw4110</font>, <FONT COLOR=#cc0000>yw4111</font>), <FONT COLOR=#cc0000>ba</font>) &#8594; <FONT COLOR=#0000cc>new_span2Zs1</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>yw40</font>, <FONT COLOR=#cc0000>yw4110</font>, <FONT COLOR=#cc0000>yw4111</font>, <FONT COLOR=#cc0000>ba</font>)
<BR><FONT COLOR=#0000cc>new_span2Ys1</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>yw40</font>, <FONT COLOR=#cc0000>yw4110</font>, <FONT COLOR=#cc0000>yw4111</font>, <FONT COLOR=#cc0000>ba</font>) &#8594; <FONT COLOR=#0000cc>new_span2Zs</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>yw40</font>, <FONT COLOR=#cc0000>yw4111</font>, <FONT COLOR=#cc0000>ba</font>)</BLOCKQUOTE><BR>R is empty.<BR>Q is empty.<BR>We have to consider all minimal (P,Q,R)-chains.<BR>By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. <P>From the DPs we obtained the following set of size-change graphs:
<UL><LI><FONT COLOR=#0000cc>new_span2Ys</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>yw40</font>, <FONT COLOR=#0000cc>:</font>(<FONT COLOR=#cc0000>yw4110</font>, <FONT COLOR=#cc0000>yw4111</font>), <FONT COLOR=#cc0000>ba</font>) &#8594; <FONT COLOR=#0000cc>new_span2Ys1</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>yw40</font>, <FONT COLOR=#cc0000>yw4110</font>, <FONT COLOR=#cc0000>yw4111</font>, <FONT COLOR=#cc0000>ba</font>)<BR>The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 3 > 4, 4 >= 5<P></LI>
<LI><FONT COLOR=#0000cc>new_span2Zs</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>yw40</font>, <FONT COLOR=#0000cc>:</font>(<FONT COLOR=#cc0000>yw4110</font>, <FONT COLOR=#cc0000>yw4111</font>), <FONT COLOR=#cc0000>ba</font>) &#8594; <FONT COLOR=#0000cc>new_span2Zs1</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>yw40</font>, <FONT COLOR=#cc0000>yw4110</font>, <FONT COLOR=#cc0000>yw4111</font>, <FONT COLOR=#cc0000>ba</font>)<BR>The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 3 > 4, 4 >= 5<P></LI>
<LI><FONT COLOR=#0000cc>new_span2Ys1</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>yw40</font>, <FONT COLOR=#cc0000>yw4110</font>, <FONT COLOR=#cc0000>yw4111</font>, <FONT COLOR=#cc0000>ba</font>) &#8594; <FONT COLOR=#0000cc>new_span2Ys</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>yw40</font>, <FONT COLOR=#cc0000>yw4111</font>, <FONT COLOR=#cc0000>ba</font>)<BR>The graph contains the following edges 1 >= 1, 2 >= 2, 4 >= 3, 5 >= 4<P></LI>
<LI><FONT COLOR=#0000cc>new_span2Ys1</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>yw40</font>, <FONT COLOR=#cc0000>yw4110</font>, <FONT COLOR=#cc0000>yw4111</font>, <FONT COLOR=#cc0000>ba</font>) &#8594; <FONT COLOR=#0000cc>new_span2Zs</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>yw40</font>, <FONT COLOR=#cc0000>yw4111</font>, <FONT COLOR=#cc0000>ba</font>)<BR>The graph contains the following edges 1 >= 1, 2 >= 2, 4 >= 3, 5 >= 4<P></LI>
<LI><FONT COLOR=#0000cc>new_span2Zs1</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>yw40</font>, <FONT COLOR=#cc0000>yw4110</font>, <FONT COLOR=#cc0000>yw4111</font>, <FONT COLOR=#cc0000>ba</font>) &#8594; <FONT COLOR=#0000cc>new_span2Ys</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>yw40</font>, <FONT COLOR=#cc0000>yw4111</font>, <FONT COLOR=#cc0000>ba</font>)<BR>The graph contains the following edges 1 >= 1, 2 >= 2, 4 >= 3, 5 >= 4<P></LI>
<LI><FONT COLOR=#0000cc>new_span2Zs1</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>yw40</font>, <FONT COLOR=#cc0000>yw4110</font>, <FONT COLOR=#cc0000>yw4111</font>, <FONT COLOR=#cc0000>ba</font>) &#8594; <FONT COLOR=#0000cc>new_span2Zs</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>yw40</font>, <FONT COLOR=#cc0000>yw4111</font>, <FONT COLOR=#cc0000>ba</font>)<BR>The graph contains the following edges 1 >= 1, 2 >= 2, 4 >= 3, 5 >= 4<P></LI></UL><BR><BR><pre>&#8627 HASKELL</pre><pre>  &#8627 LR</pre><pre>    &#8627 HASKELL</pre><pre>      &#8627 BR</pre><pre>        &#8627 HASKELL</pre><pre>          &#8627 COR</pre><pre>            &#8627 HASKELL</pre><pre>              &#8627 LetRed</pre><pre>                &#8627 HASKELL</pre><pre>                  &#8627 NumRed</pre><pre>                    &#8627 HASKELL</pre><pre>                      &#8627 Narrow</pre><pre>                        &#8627 AND</pre><pre>                          &#8627 QDP</pre><pre>                          &#8627 <B>QDP</B></pre><pre>                            &#8627 NonTerminationProof</pre><BR>Q DP problem:<BR>The TRS P consists of the following rules:<BR><BLOCKQUOTE><BR><FONT COLOR=#0000cc>new_groupBy</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>ba</font>) &#8594; <FONT COLOR=#0000cc>new_groupBy</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>ba</font>)</BLOCKQUOTE><BR>R is empty.<BR>Q is empty.<BR>We have to consider all minimal (P,Q,R)-chains.<BR>We used the non-termination processor [17] to show that the DP problem is infinite.<BR>Found a loop by semiunifying a rule from P directly.<BR><BR>The TRS P consists of the following rules:<BLOCKQUOTE><BR><FONT COLOR=#0000cc>new_groupBy</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>ba</font>) &#8594; <FONT COLOR=#0000cc>new_groupBy</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>ba</font>)</BLOCKQUOTE><BR>The TRS R consists of the following rules:none<BR><BR><BR>s = <FONT COLOR=#0000cc>new_groupBy</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>ba</font>) evaluates to  t =<FONT COLOR=#0000cc>new_groupBy</font>(<FONT COLOR=#cc0000>yw3</font>, <FONT COLOR=#cc0000>ba</font>)<BR><BR>Thus s starts an infinite chain as s semiunifies with t with the following substitutions:<BR><UL><LI> Semiunifier: [ ]</LI>
<LI> Matcher: [ ]</LI></UL><BR><BR><hr><BR><B>Rewriting sequence</B><BR><BR>The DP semiunifies directly so there is only one rewrite step from new_groupBy(yw3, ba) to new_groupBy(yw3, ba).<BR><BR><BR><BR><BR><BR></body>


