docs: public Object getAt(final int index) {
          if (index < 0) {
              // calculate whole list in this case
              // recommend avoiding -ve's as this is obviously not as efficient
              List list = list();
              int adjustedIndex = index + list.size();
              if (adjustedIndex >= 0 && adjustedIndex < list.size())
                  return list.get(adjustedIndex);
          } else {
              final Iterator iter = iterator();
              int count = 0;
  
              while (iter.hasNext()) {
                  if (count++ == index) {
                      return iter.next();
                  } else {
                      iter.next();
                  }
              }
          }
  
          return new NoChildren(this, this.name, this.namespaceTagHints);
      }