code: func (c *IterateChain) SendValues(qs QuadStore, out chan<- quad.Value) error {
  	if qs != nil {
  		c.qs = qs
  	}
  	if c.qs == nil {
  		return errNoQuadStore
  	}
  	c.start()
  	defer c.end()
  	done := c.ctx.Done()
  	send := func(v Value) error {
  		nv := c.qs.NameOf(c.it.Result())
  		if nv == nil {
  			return nil
  		}
  		select {
  		case <-done:
  			return c.ctx.Err()
  		case out <- c.qs.NameOf(c.it.Result()):
  		}
  		return nil
  	}
  	for c.next() {
  		if err := send(c.it.Result()); err != nil {
  			return err
  		}
  		for c.nextPath() {
  			if err := send(c.it.Result()); err != nil {
  				return err
  			}
  		}
  	}
  	return c.it.Err()
  }
docs: // SendValues is an analog of Send, but it will additionally call NameOf
  // for each graph.Value before sending it to a channel.