The fix we thought we had caused OOM errors This reverts commit cac3d59.
We had been using the Array append method, which returned a new array, not editted ours in place. So now we instead use a list ref of scopes to hold our new scopes. That was why before we could only pop up scopes and be correct. Now this way everything works as intended (sort-of). What's missing from the puzzle is still a way to correctly traverse them, but at least the information is there!
So, we were comparing the address of true, and the value AT true, expecting them to be the same. Not the way CPX works