code: func (l EagerVisitorList) Visit(fn VisitorFunc) error {
  	errs := []error(nil)
  	for i := range l {
  		if err := l[i].Visit(func(info *Info, err error) error {
  			if err != nil {
  				errs = append(errs, err)
  				return nil
  			}
  			if err := fn(info, nil); err != nil {
  				errs = append(errs, err)
  			}
  			return nil
  		}); err != nil {
  			errs = append(errs, err)
  		}
  	}
  	return utilerrors.NewAggregate(errs)
  }
docs: // Visit implements Visitor, and gathers errors that occur during processing until
  // all sub visitors have been visited.