anchor.diff:    (-object-number value))
   
   ;;; Helper function to parse a general number...
  -;;; FIXME: Test failed...
   (defun parse-number (string)
     ;; Firstly check the first two chars, if they match 0x/0X, 0o/0O, 0b/0B,
     ;; use corresponding radix PARSE-INTEGER. Or handle decimal values.
     (declare (type string string))
  -  (let ((sign 1)
  -	(position 0))
  -    (when (> 2 (length string))
  +  (let ((sign 1))
  +    (when (> (length string) 2)
         (let ((first-char (char string 0))
   	    (second-char (char string 1)))
   	(when (char= first-char #\0)
  
positive.code: (defconstant +math-sqrt-2 (sqrt 2.0d0))
  
  ;;; Get rid of complains, use DEFPARAMETER...
  (defparameter +decimal-digits+ "1234567890")
  (defparameter +exponent-indicator+ "eE")
  
  (deftype number-raw ()
  
negative.code: 	    ;; Now works backwards and build the decimal part.
  	    (dotimes (i (- position first-decimal))
  	      (incf decimal-part (digit-char-p (char string (- position i 1))))
  	      (setf decimal-part (/ decimal-part 10.0d0)))))
  	;; And look for an exponent.
  	(when (find (peek) +exponent-indicator+)
  	  (setf exponent (consume))
  