anchor.diff:                                          (logand result #xFFFFFFFF))))))
       (let* ((sign (cond (overflow
                           ;; On overflow, extend the carry bit out and populate the last fragment with that.
  -                        carry)
  +                        (logxor carry-complement carry))
                          (t
                           ;; Otherwise, sign-extend the second-last fragment out.
                           (ash (%object-ref-unsigned-byte-32 result (- (* size 2) 3)) -31))))
  
positive.code:                                y-sign-extension)))))
      result))
  
  (defun %%bignum-+/- (x y op)
    (let* ((carry 0)
           (overflow nil)
           (size nil)
  
negative.code:              (return-from %%bignum-< (< len-y len-x)))))
      ;; Same length, same sign. Subtract them and examine the result.
      (multiple-value-bind (val overflow sign)
          (%%bignum-+/- x y (lambda (a b cin) (- a (+ b cin))) 1)
        (declare (ignore val))
        ;; overflow xor sign.
        (if overflow
  