anchor.diff:  	return sorted_text
   
   
  -proc/dd_sortedTextList(list/incoming)
  +/proc/dd_sortedTextList(list/incoming)
   	var/case_sensitive = 1
   	return dd_sortedtextlist(incoming, case_sensitive)
   
  -
  -datum/proc/dd_SortValue()
  +/proc/subtypesof(var/path) //Returns a list containing all subtypes of the given path, but not the given path itself.
  +	if(!path || !ispath(path))
  +		return
  +	return (typesof(path) - path)
  +
  +/datum/proc/dd_SortValue()
   	return "[src]"
   
   /obj/machinery/dd_SortValue()
   	return "[sanitize(name)]"
   
   /obj/machinery/camera/dd_SortValue()
  -	return "[c_tag]"+	return "[c_tag]"
  
positive.code: 		return "[output][and_text][input[index]]"
  
  //Returns list element or null. Should prevent "index out of bounds" error.
  proc/listgetindex(var/list/list,index)
  	if(istype(list) && list.len)
  		if(isnum(index))
  			if(InRange(index,1,list.len))
  
negative.code: 	return 0
  
  //Empties the list by setting the length to 0. Hopefully the elements get garbage collected
  /proc/clearlist(list/list)
  	if(istype(list))
  		list.len = 0
  	return
  
  //Removes any null entries from the list
  /proc/listclearnulls(list/list)
  	if(istype(list))
  		while(null in list)
  			list -= null
  