The point of this is to make it the last thing to be pushed on the stack so that it will be compared first.

I left it as pushing on the stack in case it's a record with a ctor field, but maybe that's unnecessary? What's the representation of the records here:
```haskell
{ 'ctor': Just 3 } == {'ctor': Just 4}
```