docs: function render(expr, traverse, path, state) {
    if (isString(expr)) {
      utils.append(expr, state);
    } else if (Array.isArray(expr)) {
      expr.forEach(function(w) {
        render(w, traverse, path, state);
      });
    } else {
      utils.move(expr.range[0], state);
      traverse(expr, path, state);
      utils.catchup(expr.range[1], state);
    }
  }