code: func (l *ItemList) Remove(e *ItemElement) Item {
  	if e.list == l {
  		// if e.list == l, l must have been initialized when e was inserted
  		// in l or l == nil (e is a zero Element) and l.remove will crash
  		l.remove(e)
  	}
  	return e.Value
  }
docs: // Remove removes e from l if e is an element of list l.
  // It returns the element value e.Value.
  // The element must not be nil.