anchor.diff:  	var/datum/parent
   
   /datum/component/New(datum/P, ...)
  +	if(type == /datum/component)
  +		qdel(src)
  +		CRASH("[type] instantiated!")
  +
   	parent = P
   	var/list/arguments = args.Copy()
   	arguments.Cut(1, 2)
  
positive.code: 	set waitfor = FALSE
  	return
  
  /datum/component/proc/_GetInverseTypeList(current_type)
  	. = list(current_type)
  	while (current_type != /datum/component)
  		current_type = type2parent(current_type)
  		. += current_type
  
negative.code: /datum/component/proc/_RemoveFromParent()
  	var/datum/P = parent
  	var/list/dc = P.datum_components
  	for(var/I in _GetInverseTypeList())
  		var/list/components_of_type = dc[I]
  		if(islist(components_of_type))	//
  			var/list/subtracted = components_of_type - src
  