code: func (it *Unique) Next(ctx context.Context) bool {
  	graph.NextLogIn(it)
  	it.runstats.Next += 1
  
  	for it.subIt.Next(ctx) {
  		curr := it.subIt.Result()
  		key := graph.ToKey(curr)
  		if ok := it.seen[key]; !ok {
  			it.result = curr
  			it.seen[key] = true
  			return graph.NextLogOut(it, true)
  		}
  	}
  	it.err = it.subIt.Err()
  	return graph.NextLogOut(it, false)
  }
docs: // Next advances the subiterator, continuing until it returns a value which it
  // has not previously seen.