code: func (c *IterateChain) TagEach(fnc func(map[string]Value)) error {
  	c.start()
  	defer c.end()
  	done := c.ctx.Done()
  
  	mn := 0
  	for c.next() {
  		select {
  		case <-done:
  			return c.ctx.Err()
  		default:
  		}
  		tags := make(map[string]Value, mn)
  		c.it.TagResults(tags)
  		if n := len(tags); n > mn {
  			mn = n
  		}
  		fnc(tags)
  		for c.nextPath() {
  			select {
  			case <-done:
  				return c.ctx.Err()
  			default:
  			}
  			tags := make(map[string]Value, mn)
  			c.it.TagResults(tags)
  			if n := len(tags); n > mn {
  				mn = n
  			}
  			fnc(tags)
  		}
  	}
  	return c.it.Err()
  }
docs: // TagEach will run a provided tag map callback for each result of the iterator.