anchor.diff: +#define SIGNAL_ADDTRAIT(trait_ref) "addtrait [trait_ref]"
  +#define SIGNAL_REMOVETRAIT(trait_ref) "removetrait [trait_ref]"
  +
   // trait accessor defines
   #define ADD_TRAIT(target, trait, source) \
   	do { \
  
positive.code: 				} \
  			};\
  			if (!length(_L[trait])) { \
  				_L -= trait \
  			}; \
  			if (!length(_L)) { \
  				target.status_traits = null \
  
negative.code: 			target.status_traits = list(); \
  			_L = target.status_traits; \
  			_L[trait] = list(source); \
  			SEND_SIGNAL(target, SIGNAL_ADDTRAIT(trait)); \
  		} else { \
  			_L = target.status_traits; \
  			if (_L[trait]) { \
  				_L[trait] |= list(source); \
  			} else { \
  				_L[trait] = list(source); \
  				SEND_SIGNAL(target, SIGNAL_ADDTRAIT(trait)); \
  			} \
  		} \
  	} while (0)
  