anchor.diff:      r._used = y_used;
       r._clamp();
       if (nsh > 0) {
  -      r._rShiftTo(nsh, r);  // Denormalize remainder
  +      r._rShiftTo(nsh, r);  // Denormalize remainder.
       }
       if (_neg) {
         ZERO._subTo(r, r);
  
positive.code: 
    // Bits per half digit.
    static const int DIGIT2_BITS = DIGIT_BITS >> 1;
    static const int DIGIT2_BASE = 1 << DIGIT2_BITS;
    static const int DIGIT2_MASK = (1 << DIGIT2_BITS) - 1;
  
    // Allocate extra digits so the bigint can be reused.
    static const int EXTRA_DIGITS = 4;
  
    // Floating-point unit integer precision.
    static const int FP_BITS = 52;
    static const int FP_BASE = 1 << FP_BITS;
    static const int FP_D1 = FP_BITS - DIGIT_BITS;
    static const int FP_D2 = 2 * DIGIT_BITS - FP_BITS;
  
    // Min and max of non bigint values.
    static const int MIN_INT64 = (-1) << 63;
  
negative.code:     var y_used = y._used;
      var y0 = y._digits[y_used - 1];
      if (y0 == 0) return;
      var yt = y0 >> 1;  // Chop off one bit, see below. y is normalized: yt != 0.
      var i = r._used;
      var j = i - y_used;
      _Bigint t = (q == null) ? new _Bigint() : q;
  