code: func (l *ByteIntervalList) InsertBefore(v ByteInterval, mark *ByteIntervalElement) *ByteIntervalElement {
  	if mark.list != l {
  		return nil
  	}
  	// see comment in List.Remove about initialization of l
  	return l.insertValue(v, mark.prev)
  }
docs: // InsertBefore inserts a new element e with value v immediately before mark and returns e.
  // If mark is not an element of l, the list is not modified.
  // The mark must not be nil.