docs: public Iterator iterator() {
          return new Iterator() {
              private LeftTupleSinkNode currentNode = null;
              private LeftTupleSinkNode nextNode    = getFirst();
  
              public boolean hasNext() {
                  return (this.nextNode != null);
              }
  
              public Object next() {
                  this.currentNode = this.nextNode;
                  if ( this.currentNode != null ) {
                      this.nextNode = this.currentNode.getNextLeftTupleSinkNode();
                  } else {
                      throw new NoSuchElementException( "No more elements to return" );
                  }
                  return this.currentNode;
              }
  
              public void remove() {
                  if ( this.currentNode != null ) {
                      LeftTupleSinkNodeList.this.remove( this.currentNode );
                      this.currentNode = null;
                  } else {
                      throw new IllegalStateException( "No item to remove. Call next() before calling remove()." );
                  }
              }
          };
      }