anchor.diff: +
   /proc/isobject(x)
   	return (istype(x, /datum) || istype(x, /list) || istype(x, /savefile) || istype(x, /client) || (x==world))
   
  
positive.code: 		BitwiseXor(a, b)		return a^b
  		//Arithmetic Operators
  		Add(a, b)
  			//if(istext(a)&&!istext(b)) 		 b="[b]" //Unnecessary; DM does this by default.
  			if(istext(b)&&!istext(a)) a="[a]"
  			if(!isobject(a) || !isobject(b))
  				RaiseError(new/runtimeError/TypeMismatch("+", a, b))
  				return null
  			return a+b
  		Subtract(a, b)
  			if(!isobject(a) || !isobject(b))
  				RaiseError(new/runtimeError/TypeMismatch("-", a, b))
  				return null
  			return a-b
  		Divide(a, b)
  			if(!isobject(a) || !isobject(b))
  				RaiseError(new/runtimeError/TypeMismatch("/", a, b))
  				return null
  			if(b) 
  				return a/b
  			// If $b is 0 or Null or whatever, then we got a divison by zero.
  			RaiseError(new/runtimeError/DivisionByZero())
  			//ReleaseSingularity()
  			return null
  		Multiply(a, b)
  			if(!isobject(a) || !isobject(b))
  				RaiseError(new/runtimeError/TypeMismatch("*", a, b))
  				return null
  			return a*b
  		Modulo(a, b)
  			if(!isobject(a) || !isobject(b))
  				RaiseError(new/runtimeError/TypeMismatch("%", a, b))
  				return null
  			return a%b
  		Power(a, b)
  			if(!isobject(a) || !isobject(b))
  				RaiseError(new/runtimeError/TypeMismatch("**", a, b))
  				return null
  			return a**b
  
negative.code: 					else
  						D=v.object
  					D=Eval(D)
  					if(isnull(D))
  						return null
  					if(!D.vars.Find(v.id.id_name))
  						RaiseError(new/runtimeError/UndefinedVariable("[v.object.ToString()].[v.id.id_name]"))
  