The interactive loop of ghci displays an interesting evaluation fault
to do with derived equality. In the attached source file, there is
a simple guard which tests some equalities, and basically the same
value is given on the left and right of the (==). Yet, it evaluates
to False in
Curiously enough, this is a new bug. The patch that fixed my previous
problem does not solve this issue.
I had a problem with derived Eq and Ord with a polymorphic representation of
regular expressions. Simon Peyton-Jones recently put a updated
ghc/compiler/typecheck/TcGenDeriv.lhs in CVS,
Oddity of oddities
This seems to have nothing to do with the correctness of derived Eq, as
let xs = [A,B,C,D,E,ABE,AC,BD,CDE] in [ map (x ==) xs | x - xs ]
returns the proper result, though replacing the derived Eq with a handwritten
version also fixes the problem.
I did happen to