anchor.diff:  			if (QDEL_HINT_PUTINPOOL)	//qdel will put this object in the pool.
   				PlaceInPool(D, 0)
   			if (QDEL_HINT_FINDREFERENCE)//qdel will, if TESTING is enabled, display all references to this object, then queue the object for deletion.
  -				SSgarbage.Queue(D)
  +				SSgarbage.QueueForQueuing(D)
   				#ifdef TESTING
   				A.find_references()
   				#endif
  
positive.code: 				++totalgcs
  		queue.Cut(1, 2)
  
  
  /datum/subsystem/garbage_collector/proc/Queue(datum/A, harddel = 0)
  	if (!istype(A) || !isnull(A.gc_destroyed))
  		return
  	A.gc_destroyed = world.time
  	queue -= "\ref[A]" // Removing any previous references that were GC'd so that the current object will be at the end of the list.
  	queue["\ref[A]"] = world.time
  
  /datum/subsystem/garbage_collector/proc/HardQueue(datum/A, harddel = 0)
  	if (!istype(A) || !isnull(A.gc_destroyed))
  		return
  	A.gc_destroyed = world.time
  
negative.code: 	var/list/queue = list() 	// list of refID's of things that should be garbage collected
  								// refID's are associated with the time at which they time out and need to be manually del()
  								// we do this so we aren't constantly locating them and preventing them from being gc'd
  	
  	var/list/tobequeued = list()	//We store the references of things to be added to the queue seperately so we can spread out GC overhead over a few ticks
  
  	var/list/didntgc = list()	// list of all types that have failed to GC associated with the number of times that's happened.
  								// the types are stored as strings
  