This is a fix for #424. The primary fix consists in splitting the logic for equality tests based on the value of isTrue. I have separated it as its own function as it's needed for two branches, and Haskell lacks binding or-patterns.
Along the way, I have made the code for assertPred better documented, and much more uniform. This should make it easier to spot bugs and understand the overall logic.
This is a fix for #424. The primary fix consists in splitting the logic for equality tests based on the value of
isTrue
. I have separated it as its own function as it's needed for two branches, and Haskell lacks binding or-patterns.Along the way, I have made the code for
assertPred
better documented, and much more uniform. This should make it easier to spot bugs and understand the overall logic.