Joel VanderWerf wrote:

> So you have to be careful in the block to avoid side effects, right? 
> Otherwise pass1 and pass2 might start with different state.

No, I just document: Don't put anything in the block with a side-effect. The 
money-line (the line that calls your production code to test it), for example, 
should never be inside the assert{}.

The first pass is just a raw block.call, so the assertion must always get its 
actual status right...