docs: function freshVars(node){
    switch (node.type) {
      case 'VariableDeclaration':
        return node.declarations.map(function(n){ return n.id })
      case 'FunctionExpression': return [] // early exit
      case 'FunctionDeclaration':
        return [node.id]
    }
    return children(node)
      .map(freshVars)
      .reduce(concat, [])
  }