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
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.