Make sure zipEqual fuses
zipEqual
is a version of zip
used in GHC that checks that the lengths are equal when debugging is enabled, otherwise zipEqual _msg = zip
.
In !3935 (closed), it turned out that replacing zipEqual
by zip
in one place gives significant perf gains in a non-debug build. This merge request ended up doing fusion manually, but it makes me concerned that there might be other places where zipEqual
is not behaving as well as it should. The goal of this ticket is to investigate. Ideally, we should have some guarantee that using zipEqual
does not incur a penalty.