anchor.diff:  	return 0
   
   //Empties the list by setting the length to 0. Hopefully the elements get garbage collected
  -proc/clearlist(list/list)
  +/proc/clearlist(list/list)
   	if(istype(list))
   		list.len = 0
   	return
   
   //Removes any null entries from the list
  -proc/listclearnulls(list/list)
  +/proc/listclearnulls(list/list)
   	if(istype(list))
   		while(null in list)
   			list -= null
  
positive.code: 			return list[index]
  	return
  
  proc/islist(list/list)
  	if(istype(list))
  		return 1
  	return 0
  
  //Return either pick(list) or null if list is not of type /list or is empty
  proc/safepick(list/list)
  	if(!islist(list) || !list.len)
  		return
  	return pick(list)
  
  //Checks if the list is empty
  proc/isemptylist(list/list)
  	if(!list.len)
  		return 1
  	return 0
  
negative.code: 	return sorted_text
  
  
  /proc/dd_sortedTextList(list/incoming)
  	var/case_sensitive = 1
  	return dd_sortedtextlist(incoming, case_sensitive)
  
  /proc/subtypesof(var/path) //Returns a list containing all subtypes of the given path, but not the given path itself.
  	if(!path || !ispath(path))
  		CRASH("Invalid path, failed to fetch subtypes of \"[path]\".")
  	return (typesof(path) - path)
  
  /datum/proc/dd_SortValue()
  	return "[src]"
  
  /obj/machinery/dd_SortValue()
  