Modified the engine to expose reduction events to the user.
This seems to cause roughly a 10% speed loss (e.g. from 4.3 to 4.6 seconds). The current interface is not satisfactory, as it allows the user to manufacture a continuation that will break our invariants and lead to a crash.
Showing with 42 additions and 14 deletions