anchor.diff:  (define-condition no-power-char-error (error)
     ())
   
  -(define-condition bad-format-float-error (error)
  +(define-condition not-formattable-error (error)
     ((original-condition :initarg :original-condition :initform nil)))
   
   
  
positive.code:        (setf style :positional)
         (setf (fill-pointer buf) 0)
         (go try-again))
       (bad-format-float-error ()
         ;; Infinity or NaN.
         ;; TODO: Use right floating-point handlings.
         (setf style nil)
         (setf (fill-pointer buf) 0)
         (format buf "~A" object)))
  
negative.code: 	   (otherwise
  	    (typecase object
  	      (integer
  	       (print-jp-integer buf-stream (* object (expt 10 scale)) style)
  	       (when radix-point-char
  		 (write-string radix-point-str buf-stream)))
  	      (ratio
  	       (when (minusp object)
  		 (write-string (get-minus-sign style) buf-stream))
  	       (let ((object (* object (expt 10 scale))))
  		 (print-jp-integer buf-stream (denominator object) style)
  		 (write-string (get-parts-of style) buf-stream)
  		 (print-jp-integer buf-stream (abs (numerator object)) style)))
  	      (float
  	       (print-fraction buf-stream object style digits-after-dot scale radix-point-str))
  	      (t			; complex etc.
  	       (error 'not-formattable-error)))
  	    (unless (plusp (length buf))
  	      (write-string (get-digit 0 style) buf-stream)))))
       (no-power-char-error ()
  