anchor.diff: -import "Item.dart";
  -import "Trait.dart";
  +
  +import "../SBURBSIM.dart";
   
   /*
   http://mspaintadventures.wikia.com/wiki/Alchemiter
  
positive.code:         combine();
      }
  
      void combine();
  
      ///returns a list of all possible alchemy types between these two items.
      static List<AlchemyResult> planAlchemy(List<Item> items) {
  
negative.code: 
  class AlchemyResultAND extends AlchemyResult {
    AlchemyResultAND(List<Item> items) : super(items);
  
    @override
    String  description(Player p, templates) {
        templates.addAll(<String>["${p.htmlTitleBasicNoTip()} overlaps the punched cards for ${turnArrayIntoHumanSentence(items)} to get ${result.fullName}. ${result.randomDescription(p.session.rand)}"]);
        return super.description(p, templates);
    }
  
    ///AND takes both functionality and appearance from both things.
    ///TODO if this is OP (i.e. OR is never selected) then take every other trait from both.
  