anchor.diff:         (setf (fill-pointer buf) 0)
          (go try-again))
        (not-formattable-error ()
  +       ;; complex, Infinity or NaN.
          (setf style nil)
          (setf (fill-pointer buf) 0)
          (format buf "~A" object)))
  
positive.code:      while (plusp rest)
       finally (mapc #'(lambda (s) (write-string s stream)) strs)))
  
  (defun make-fractional-string (object style digits-after-dot scale)
    (let* ((trim-zero? (not digits-after-dot))
  	 (digits-after-dot (or digits-after-dot
  			       (- +power-min+)))
  
negative.code: 		    (if trim-zero?
  			(string-right-trim '(#\0) str)
  			str)))
  	 (dot-pos (let ((pos (position #\. lispstr)))
  		    (unless pos
  		      (error 'not-formattable-error))
  		    pos))
  	 (int-part (parse-integer lispstr :end dot-pos))
  	 (frac-part-strlen (- (length lispstr) (1+ dot-pos))))
      ;; int part
      (print-jp-integer stream int-part style)
      ;; prints '0' if needed
      (when (and (zerop int-part)
  	       (or radix-point-required-p
  		   (zerop frac-part-strlen)))
        (write-string (get-digit 0 style) stream))
      ;; prints '.' if needed
      (when (or radix-point-required-p
  	      (and (not (zerop int-part))
  		   (plusp frac-part-strlen)))
        (write-string radix-point-str stream))
      ;; frac part
      (loop for i from (1+ dot-pos) below (length lispstr)
         as c = (aref lispstr i)
         for power downfrom -1 to (- digits-after-dot)
         unless (digit-char-p c)
         do (error 'not-formattable-error)
         if (char/= #\0 c)
         do (write-string (translate-digit c style) stream)
         (write-string (get-power power style) stream))))
  
  
  (defun flag-to-style (colon-p at-sign-p)
  