anchor.diff:  (defconstant +math-sqrt-2 (sqrt 2.0d0))
   
   ;;; Get rid of complains, use DEFPARAMETER...
  -(defparameter +decimal-digits+ "1234567890")
  +(defparameter +decimal-digits+ "0123456789")
   (defparameter +exponent-indicator+ "eE")
   
   (deftype number-raw ()
  
positive.code: 	  ;; Read exponent part.
  	  (loop (when (not (find (peek) +decimal-digits+))
  		  (return))
  	     (setf exponent-value (+ (* exponent-value 10)
  				     (digit-char-p (consume))))))
  	;; Must be at the end.
  	(when (peek)
  	  (return-from parse-number (values :nan 0)))
  	(* sign
  	   (+ integer-part decimal-part)
  	   (expt 10.0 (* exponent-sign exponent-value)))))))
  
  (defun -to-number (value)
    (typecase value
  
negative.code: 	       (parse-integer string :start 2 :radix 2)))))))
      ;; Now we must be parsing a decimal, or NaN.
      (let ((integer-part 0)
  	  (decimal-part 0.0d0)
  	  (saw-integer-digits nil)
  	  (saw-decimal-digits nil)
  	  (saw-decimal-point nil)
  	  (exponent #\E)
  	  (exponent-sign 1)
  	  (exponent-value 0.0d0)
  	  (position 0))
        ;; Underlying methods are taken from Mezzano's reader.
        (declare (type integer integer-part)
  	       (type double-float decimal-part exponent-value))
        (flet ((peek ()
  	       (when (< position (length string))
  		 (char string position)))
  