code: func (i *Iterator) Next() bool {
  	if i.err != nil {
  		return false
  	}
  	i.rec, i.err = i.r.Read()
  	return i.err == nil
  }
docs: // Next advances the Iterator past the next record, which will then be available through
  // the Record method. It returns false when the iteration stops, either by reaching the end of the
  // input or an error. After Next returns false, the Error method will return any error that
  // occurred during iteration, except that if it was io.EOF, Error will return nil.