anchor.diff:  	spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
   
   /obj/item/integrated_circuit/logic/binary/greater_than/do_compare(var/datum/integrated_io/A, var/datum/integrated_io/B)
  -	return A.data > B.data
  +	if(comparable(A, B))
  +		return A.data > B.data
   
   /obj/item/integrated_circuit/logic/binary/greater_than_or_equal
   	name = "greater_than or equal gate"
  
positive.code: 	spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
  
  /obj/item/integrated_circuit/logic/binary/less_than/do_compare(var/datum/integrated_io/A, var/datum/integrated_io/B)
  	return A.data < B.data
  
  /obj/item/integrated_circuit/logic/binary/less_than_or_equal
  	name = "less than or equal gate"
  
negative.code: /obj/item/integrated_circuit/logic/binary/proc/do_compare(var/datum/integrated_io/A, var/datum/integrated_io/B)
  	return FALSE
  
  /obj/item/integrated_circuit/logic/binary/proc/comparable(var/datum/integrated_io/A, var/datum/integrated_io/B)
  	return (isnum(A.data) && isnum(B.data)) || (istext(A.data) && istext(B.data))
  
  /obj/item/integrated_circuit/logic/unary
  	inputs = list("A")
  	activators = list("compare" = IC_PINTYPE_PULSE_IN, "on compare" = IC_PINTYPE_PULSE_OUT)
  