code: func (d *defaultCacheMutationDetector) AddObject(obj interface{}) {
  	if _, ok := obj.(DeletedFinalStateUnknown); ok {
  		return
  	}
  	if obj, ok := obj.(runtime.Object); ok {
  		copiedObj := obj.DeepCopyObject()
  
  		d.lock.Lock()
  		defer d.lock.Unlock()
  		d.cachedObjs = append(d.cachedObjs, cacheObj{cached: obj, copied: copiedObj})
  	}
  }
docs: // AddObject makes a deep copy of the object for later comparison.  It only works on runtime.Object
  // but that covers the vast majority of our cached objects