Exactly. The best you can do is try to reduce your code to a tiny
fragment that still exposes the problem, and report it as a bug.

On Tue, Jan 6, 2009 at 4:52 PM, Murray Gross <[email protected]> wrote:
>
> The issue here is not whether or not the code is pretty or elegant, but
> whether or not I get correct execution of what I have, which is a correct
> statement of what I want (even if not the prettiest or most lint free), and
> I don't. There are lots of ways to work around the problem, but that
> doesn't, unfortunately, make the problem go away, and it is sure to appear
> elsewhere as the program is extended, which it will be.
>
> It would appear that the real issue here is that someone with resources I
> don't have needs to dig into the compilers--it should not be necessary to
> use trial and error to find an alternate writing of code that is legal and
> correct (regardless of the aesthetics) but is incorrectly compiled. For the
> time being, I will use native compilation and hope that someone can find and
> fix the error so that I can use the speed advantage of optimization.
>
> Best,
>
> Murray Gross
>
>
>
> On Tue, 6 Jan 2009, Neil Mitchell wrote:
>
>> Hi
>>
>>> gTst3 right left = if (lr > ll)  then  False else True
>>>                        where lr = length (right ! 2)
>>>                              ll = length (left ! 2)
>>
>> Running this code over HLint (http://www.cs.york.ac.uk/~ndm/hlint) says:
>>
>> Example.hs:8:1: Error: Redundant if
>> Found:
>>  if (lr > ll) then False else True
>> Why not:
>>  not (lr > ll)
>>
>> Making that change and running it again gives:
>>
>> Example.hs:8:1: Error: Use <=
>> Found:
>>  not (lr > ll)
>> Why not:
>>  lr <= ll
>>
>> Which ends up with something similar to what you came up with.
>> However, if we take your final answer:
>>
>>> gTst3 right left = (lr <= ll)
>>>                        where lr = length (right ! 2)
>>>                              ll = length (left ! 2)
>>
>> We get:
>>
>> Example.hs:8:1: Warning: Redundant brackets
>> Found:
>>  (lr <= ll)
>> Why not:
>>  lr <= ll
>>
>> Leaving us with the HLint 1.0 compliant (TM) :
>>
>> gTst3 right left = lr <= ll
>>                        where lr = length (right ! 2)
>>                              ll = length (left ! 2)
>>
>> Thanks
>>
>> Neil
>> _______________________________________________
>> Haskell-Cafe mailing list
>> [email protected]
>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>
> _______________________________________________
> Haskell-Cafe mailing list
> [email protected]
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to