anchor.diff:  
   (defun |!sqrt| (x)
     (declare (double-float x))
  -  (the (complex double-float) (sqrt x)))
  +  (sqrt x))
  
positive.code:   (declare (cons xy))
    (the-double (* (the-double (car xy)) (the-double (cdr xy)))))
  
  (defun mod-2 (x y)
    (declare (double-float x y))
    (the-double (rem x y)))
  
negative.code: (defun DoubleInt::|!*| (xy)
    (declare (cons xy))
    (the-double (* (the-double (car xy)) (Integer-Spec::toDouble (cdr xy)))))
  
  (defun DoubleInt::/-2 (x y)
    (declare (double-float x))
    (the-double (/ x (Integer-Spec::toDouble y))))
  
  (define-compiler-macro DoubleInt::/-2 (x y)
    `(the-double (/ (the-double ,x) (Integer-Spec::toDouble ,y))))
  
  (defun DoubleInt::|!/| (xy)
    (declare (cons xy))
    (the-double (/ (the-double (car xy)) (Integer-Spec::toDouble (cdr xy)))))
  
  ;;; Coerce first arg
  (defun IntDouble::+-2 (x y)
  