Issue #2: Allowing the walker functions to return an error. If any walker
function return an error, iteration will be aborted and the error returned.