anchor.diff:  Range _0_instruction = createInstructionRange(0);
   
   checkAndRange(Range one, Range two, lower, upper) {
  -  if (lower is num) lower = new IntValue(lower);
  -  if (upper is num) upper = new IntValue(upper);
  -  Range range = new Range(lower, upper);
  +  if (lower is num) lower = info.newIntValue(lower);
  +  if (upper is num) upper = info.newIntValue(upper);
  +  Range range = info.newRange(lower, upper);
     Expect.equals(range, one & two);
   }
   
  
positive.code:   } else {
      Value low, up;
      if (arg1 is num) {
        low = new IntValue(arg1);
      } else if (arg1 == null) {
        low = new NegateValue(range.upper);
      } else {
        low = arg1;
      }
      if (arg2 is num) {
        up = new IntValue(arg2);
      } else if (arg2 == null) {
        up = new NegateValue(range.lower);
      } else {
        up = arg2;
      }
      Expect.equals(new Range(low, up), -range);
    }
  }
  
  
negative.code: 
    checkAndRange(nFF, FF, 1, 1);
    checkAndRange(nFF, FA, 0, 0);
    checkAndRange(nFF, nFF, bits32(-0xFF), bits32(-0xFF));
    checkAndRange(nFF, length, 0, length.upper);
    checkAndRange(nFF, _FA_FF, 0, 0xFF);
    checkAndRange(nFF, _0_FF, 0, 0xFF);
  