code: func (l *PacketList) remove(e *PacketElement) *PacketElement {
  	e.prev.next = e.next
  	e.next.prev = e.prev
  	e.next = nil // avoid memory leaks
  	e.prev = nil // avoid memory leaks
  	e.list = nil
  	l.len--
  	return e
  }
docs: // remove removes e from its list, decrements l.len, and returns e.