run -> step

We can’t just run a function to completion all at once, it’ll make the
window unresponsive. We’ll have to reify the state of the virtual
machine and do a finite number of steps per “frame”.