anchor.diff:  ;; ==========================================================================
   
   (define-condition format-string-error (focus-error)
  -  ((format-string :documentation "The format string related to the error."
  -		  :initarg :format-string
  -		  :reader format-string)
  -   (offset :documentation "The offset in the string where the error occurs."
  -	   :initform nil
  -	   :initarg :offset
  -	   :reader offset))
  +  ((string :documentation "The format string."
  +	   :initarg :string
  +	   ;; The lack of polymorphism on standard functions sucks. I want
  +	   ;; to use just STRING here.
  +	   :reader format-string)
  +   (position :documentation "The position at which the error occurs."
  +	     :initform nil
  +	     :initarg :position
  +	     ;; Same here. I'd have preferred to use POSITION...
  +	     :reader string-position))
     (:documentation "A format string error."))
   
  -(define-condition missing-directive (format-string-error)
  +(define-condition missing-string-directive (format-string-error)
     ()
     (:report (lambda (error stream)
   	     (cl:format stream
   		 "Missing directive character:~%  => ~S~%  => ~V@T^"
   	       (format-string error)
  -	       (1+ (offset error)))))
  +	       (1+ (string-position error)))))
     (:documentation "A missing directive error."))
   
   (define-condition spurious-parameter (format-string-error)
  
positive.code: 		      (directive-character directive))
  		    (1+ closing-character))
  	  (error 'missing-delimiter
  		 :format-string string
  		 :offset start
  		 :delimiter character)))))
    (:method (string start (directive function-directive))
      "Method for function directives."
  
negative.code: 	:and atsignp := nil
  	:for char := (if (< index end)
  			 (schar string index)
  		       (error 'missing-string-directive
  			      :string string
  			      :position start))
  	:when (and (or colonp atsignp)
  		   (or (char<= #\0 char #\9)
  		       (member char '(#\- #\+ #\v #\V #\# #\' #\,))))
  	  :do (error 'spurious-parameter
  		     :string string
  		     :position index)
  	:do (flet ((skip-comma (&optional (advance t))
  		     (when advance (incf index))
  		     (when (and (< index end)
  