code: func newCountReader(r io.Reader) *countReader {
  	switch r := r.(type) {
  	case *countReader:
  		panic("bgzf: illegal use of internal type")
  	case flate.Reader:
  		return &countReader{fr: r}
  	default:
  		return &countReader{fr: bufio.NewReader(r)}
  	}
  }
docs: // newCountReader returns a new countReader.