code: function recursive(node, state, funcs, base, override) {
    var visitor = funcs ? exports.make(funcs, base) : base;(function c(node, st, override) {
      visitor[override || node.type](node, st, c);
    })(node, state, override);
  }
docs: A recursive walk is one where your functions override the default walkers. They can modify and replace the state parameter that's threaded through the walk, and can opt how and whether to walk their child nodes (by calling their third argument on these nodes).