Use full equality for CSE
In CSE we were getting lots of apprarently-unequal expressions with
the same hash code. In fact they were perfectly equal -- but we were
using a cheap-and-cheerful equality tests for CoreExpr that said False
for any lambda expression!
This patch adds a proper equality test for Core, with alpha-renaming.
It's easy to do, and will avoid silly cases of CSE failing to fire.
We should get less of this:
WARNING: file compiler/simplCore/CSE.lhs line 326
extendCSEnv: long list, length 18
from a compiler built with -DDEBUG