code: func shrinkSubListIfNeeded(sl []*subState) []*subState {
  	lsl := len(sl)
  	csl := cap(sl)
  	// Don't bother if list not too big
  	if csl <= 8 {
  		return sl
  	}
  	pFree := float32(csl-lsl) / float32(csl)
  	if pFree > 0.50 {
  		return append([]*subState(nil), sl...)
  	}
  	return sl
  }
docs: // Checks if we need to do a resize. This is for very large growth then
  // subsequent return to a more normal size.