code: func NewUnionIterator(iters []NodeIterator) (NodeIterator, *int) {
  	h := make(nodeIteratorHeap, len(iters))
  	copy(h, iters)
  	heap.Init(&h)
  
  	ui := &unionIterator{items: &h}
  	return ui, &ui.count
  }
docs: // NewUnionIterator constructs a NodeIterator that iterates over elements in the union
  // of the provided NodeIterators. Returns the iterator, and a pointer to an integer
  // recording the number of nodes visited.