anchor.diff:      (initial-apply-add dialog #'dialog-add-button initargs :button :buttons)))
     
   
  -(defvar %*response-id-key* (gensym))
  -
   (defun %dialog-find-response-id-num (dialog id &optional create-p error-p)
     (or
      (cadr (assoc id (rest (type-expand-1 'response-type))))
  -   (let ((response-ids (object-data dialog %*response-id-key*)))
  +   (let ((response-ids (object-data dialog 'response-id-key)))
       (cond
         ((and response-ids (position id response-ids :test #'equal)))
         (create-p
  
positive.code: 
  (defun dialog-add-button (dialog label &optional (response label)
  			  &key default object after)
    "Adds a button to the dialog. If no response is given, then label
     will be used."
    (let* ((id (if (functionp response)
  		 label
  	       response))
  
negative.code: 	  (1- (length response-ids)))
  	 (t
  	  (setf 
  	   (object-data dialog 'response-id-key)
  	   (make-array 1 :adjustable t :fill-pointer t :initial-element id))
  	  0)))
        (error-p
  