code: func (l *LFUNoTS) Delete(key string) error {
  	res, err := l.cache.Get(key)
  	if err != nil && err != ErrNotFound {
  		return err
  	}
  
  	// we dont need to delete if already doesn't exist
  	if err == ErrNotFound {
  		return nil
  	}
  
  	ci := res.(*cacheItem)
  
  	l.remove(ci, ci.freqElement)
  	l.currentSize--
  	return l.cache.Delete(key)
  }
docs: // Delete deletes the key and its dependencies