anchor.diff:  	var/hash
   	var/list/flags
   	var/spent = FALSE //set to true right before running.
  -
  +	var/name //for easy debugging.
   	//cicular doublely linked list
   	var/datum/timedevent/next
   	var/datum/timedevent/prev
  
positive.code: 	var/static/datum/timedevent/timer
  	var/static/datum/timedevent/head
  
  	if (practical_offset > BUCKET_LEN || (!resumed  && length(src.bucket_list) != BUCKET_LEN || world.tick_lag != bucket_resolution))
  		shift_buckets()
  		resumed = FALSE
  
  
  	if (!resumed)
  		timer = null
  		head = null
  
  	var/list/bucket_list = src.bucket_list
  
  	while (practical_offset <= BUCKET_LEN && head_offset + (practical_offset*world.tick_lag) <= world.time && !MC_TICK_CHECK)
  		if (!timer || !head || timer == head)
  
negative.code: 	prev = null
  	return QDEL_HINT_IWILLGC
  
  /datum/timedevent/proc/getcallingtype()
  	. = "ERROR"
  	if (callBack.object == GLOBAL_PROC)
  		. = "GLOBAL_PROC"
  	else
  		. = "[callBack.object.type]"
  
  /proc/addtimer(datum/callback/callback, wait, flags)
  	if (!callback)
  		return
  