code: func (r *countReader) seek(rs io.ReadSeeker, off int64) error {
  	_, err := rs.Seek(off, 0)
  	if err != nil {
  		return err
  	}
  
  	type reseter interface {
  		Reset(io.Reader)
  	}
  	switch cr := r.fr.(type) {
  	case reseter:
  		cr.Reset(rs)
  	default:
  		r.fr = newCountReader(rs)
  	}
  	r.off = off
  
  	return nil
  }
docs: // seek moves the countReader to the specified offset using rs as the
  // underlying reader.