Specifically for this code:<br><br><pre><font size="4">gTst3 right left = if (lr &gt; ll)  then  False else True <br>                        where lr = length (right ! 2)<br>                              ll = length (left ! 2)</font><br><br></pre>why don&#39;t you just negate the condition, like:<br>
<br><br><pre><font size="4">gTst3 right left = (lr &lt;= ll)<br>                        where lr = length (right ! 2)<br>                              ll = length (left ! 2)</font><br><br></pre><br><br><br><div class="gmail_quote">2009/1/5 Murray Gross <span dir="ltr">&lt;<a href="mailto:mgross21@verizon.net">mgross21@verizon.net</a>&gt;</span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
<br>
No unsafe perform (except what may be hidden in trace), nothing, fancy, no gimmicks (very pedestrian, even heavy-handed) code. Complete code is attached (I don&#39;t have smaller snippets, because I just discovered the problem).<br>

<br>
<br>
<br>
Best,<br><font color="#888888">
<br>
Murray Gross</font><div><div></div><div class="Wj3C7c"><br>
<br>
<br>
<br>
On Mon, 5 Jan 2009, Luke Palmer wrote:<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On Mon, Jan 5, 2009 at 4:34 PM, Murray Gross &lt;<a href="mailto:mgross21@verizon.net" target="_blank">mgross21@verizon.net</a>&gt; wrote:<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
When using any of -O, -O1, -O2 with the Debian binary build of GHC 6.6,<br>
trace shows that the expression<br>
<br>
 &nbsp; &nbsp; &nbsp;if (lr &gt; ll) &nbsp;then &nbsp;False else True<br>
<br>
is (at least partially) evaluated, but the value returned is always True,<br>
even though trace reports that (lr &gt; ll) is True. When I use only the native<br>
code generator (without optimization), the correct value (False) is<br>
returned.<br>
<br>
Further detail and complete code on request.<br>
</blockquote>
<br>
<br>
Of course! &nbsp;This is obviously incorrect behavior. &nbsp;Are you doing any<br>
unsafePerformIO? &nbsp;Please, complete code (minimal test case if possible, but<br>
don&#39;t let that stop you).<br>
<br>
Luke<br>
<br>
<br>
<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
<br>
Best,<br>
<br>
Murray Gross<br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
<br>
</blockquote>
</blockquote>
</div></div><br>_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>Rafael Gustavo da Cunha Pereira Pinto<br>Electronic Engineer, MSc.<br>