code: func (it *Or) Size() (int64, bool) {
  	var val int64
  	var b bool
  	if it.isShortCircuiting {
  		val = 0
  		b = true
  		for _, sub := range it.internalIterators {
  			newval, newb := sub.Size()
  			if val < newval {
  				val = newval
  			}
  			b = newb && b
  		}
  	} else {
  		val = 0
  		b = true
  		for _, sub := range it.internalIterators {
  			newval, newb := sub.Size()
  			val += newval
  			b = newb && b
  		}
  	}
  	return val, b
  }
docs: // Returns the approximate size of the Or graph.iterator. Because we're dealing
  // with a union, we know that the largest we can be is the sum of all the iterators,
  // or in the case of short-circuiting, the longest.