traversers have access to sideeffects.