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