anchor.diff:    bool canBePrimitive(Compiler compiler) => true;
     bool canBeNull() => true;
   
  -  HType union(HType other, Compiler compiler) => other;
  -  HType intersection(HType other, Compiler compiler) => this;
  +  HType unionOld(HType other, Compiler compiler) => other;
  +  HType intersectionOld(HType other, Compiler compiler) => this;
   }
   
   abstract class HPrimitiveType extends HType {
  
positive.code:     return HType.CONFLICTING;
    }
  
    HType union(HType other, Compiler compiler) {
      if (this == other) return this;
      if (isTop(compiler)) return this;
      if (other.isNull()) {
  
negative.code:     return new TypeMask.nonNullExact(computeType(compiler));
    }
  
    HType unionOld(HType other, Compiler compiler) {
      if (other.isConflicting()) return HType.BOOLEAN;
      if (other.isUnknown()) return HType.UNKNOWN;
      if (other.isBoolean()) return HType.BOOLEAN;
  