code: func (s *SACKScoreboard) Delete(seq seqnum.Value) {
  	if s.Empty() {
  		return
  	}
  	toDelete := []btree.Item{}
  	toInsert := []btree.Item{}
  	r := header.SACKBlock{seq, seq.Add(1)}
  	s.ranges.DescendLessOrEqual(r, func(i btree.Item) bool {
  		if i == r {
  			return true
  		}
  		sb := i.(header.SACKBlock)
  		toDelete = append(toDelete, i)
  		if sb.End.LessThanEq(seq) {
  			s.sacked -= sb.Start.Size(sb.End)
  		} else {
  			newSB := header.SACKBlock{seq, sb.End}
  			toInsert = append(toInsert, newSB)
  			s.sacked -= sb.Start.Size(seq)
  		}
  		return true
  	})
  	for _, sb := range toDelete {
  		s.ranges.Delete(sb)
  	}
  	for _, sb := range toInsert {
  		s.ranges.ReplaceOrInsert(sb)
  	}
  }
docs: // Delete removes all SACK information prior to seq.