code: func Iterate(ctx context.Context, it Iterator) *IterateChain {
  	if ctx == nil {
  		ctx = context.Background()
  	}
  	return &IterateChain{
  		ctx: ctx, it: it,
  		limit: -1, paths: true,
  		optimize: true,
  	}
  }
docs: // Iterate is a set of helpers for iteration. Context may be used to cancel execution.
  // Iterator will be optimized and closed after execution.
  //
  // By default, iteration has no limit and includes sub-paths.