Move the calls to *_rules_handled outside of the generator
Move the calls to *_rules_handled outside of the generator

I didn't really expect this to work but apparently I was correct:
if an iterator is suspended and you change what it's iterating over
before resuming it, that's fine! "Size changed during iteration"
can only happen while the iterator is actually running.

LogicalDash/LiSE,LogicalDash/LiSE