code: function traverseTopDown(fn) {
      var result, i;
      result = fn.call(this);
      if(result)
          return result;
      if (this instanceof tree.ConsNode || this instanceof tree.ListNode) {
          for (i = 0; i < this.length; i++) {
              traverseTopDown.call(this[i], fn);
          }
      }
      return this;
  }
docs: A somewhat optimized version of the "clean" topdown traversal