Refactored the API for `Walker`s, to have them take their additional functionality as arguments rather than magic return values. Somewhat less pure-monadic, but probably more idiomatic and easier for people to understand