code: func (it *Resolver) Next(ctx context.Context) bool {
  	graph.NextLogIn(it)
  	if it.index >= len(it.order) {
  		it.result = nil
  		return graph.NextLogOut(it, false)
  	}
  	if !it.cached {
  		it.err = it.resolve(ctx)
  		if it.err != nil {
  			return false
  		}
  	}
  	node := it.order[it.index]
  	value, ok := it.values[node]
  	if !ok {
  		it.result = nil
  		it.err = fmt.Errorf("not found: %v", node)
  		return graph.NextLogOut(it, false)
  	}
  	it.result = value
  	it.index++
  	return graph.NextLogOut(it, true)
  }
docs: // Next advances the iterator.