code: func (it *And) NextPath(ctx context.Context) bool {
  	if it.primaryIt.NextPath(ctx) {
  		return true
  	}
  	it.err = it.primaryIt.Err()
  	if it.err != nil {
  		return false
  	}
  	for _, sub := range it.internalIterators {
  		if sub.NextPath(ctx) {
  			return true
  		}
  
  		it.err = sub.Err()
  		if it.err != nil {
  			return false
  		}
  	}
  	return false
  }
docs: // An And has no NextPath of its own -- that is, there are no other values
  // which satisfy our previous result that are not the result itself. Our
  // subiterators might, however, so just pass the call recursively.