anchor.diff:    ;; FIXME: issue a warning if the variable doesn't exist 
     (make-instance 'setq-form
   		 :original-form (original-form ast)
  -		 :variable (lookup (original-form (car (subforms ast)))
  +		 :variable (lookup (original-form (cadr (subforms ast)))
   				   environment
   				   'variable)
  -		 :value (convert (cadr (subforms ast)) environment)))
  +		 :value (convert (caddr (subforms ast)) environment)))
   
   (defmethod convert-special ((op (eql 'progn)) ast environment)
     (cond ((null (cdr (subforms ast)))
  
positive.code: 	      nil)))))
  
  ;;; Search an ast to see whether its original form is eq to the ast
  (defgeneric search-ast (form ast))
  
  (defmethod search-ast (form ast)
    (if (eq form (original-form ast))
        ast
        nil))
  
  (defmethod search-ast (form (ast compound-form))
    (or (call-next-method)
        (find-if (lambda (subform)
  		 (search-ast form subform))
  	       (subforms ast))))
  
  ;;; Create a new ast from the form by either finding
  ;;; an existing (sub) ast that has form as its original form,
  ;;; or by creating a new ast. 
  (defun fixup (form ast)
    (or (search-ast form ast)
        (cond ((constantp form)
  	     (make-instance 'constant-form
  			    :original-form form))
  	    ((symbolp form)
  	     (make-instance 'symbol-form
  			    :original-form form))
  	    ((consp form)
  	     (assert (proper-list-p form))
  	     (make-instance 'compound-form
  			    :original-form form
  
negative.code: 		     :body-form
  		     (convert-implicit-progn body-forms new-environment)))))
  
  (defmethod convert-special ((op (eql 'quote)) ast environment)
    (assert (= (length (subforms ast)) 2))
    (make-instance 'constant-form
  