anchor.diff:      (assert-error 'type-error
   		  (setf (cadar list) 1))))
   
  -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  -;;;
  -;;; Tests for the (setf caddr) function
  +(define-test |setf cadar apply 1|
  +  (let ((list (copy-tree '((((0 . 0) . (0 . 0)) . ((0 . 0) . (0 . 0))) .
  +			   (((0 . 0) . (0 . 0)) . ((0 . 0) . (0 . 0)))))))
  +    (assert-equal 1 (apply #'(setf cadar) (list 1 list)))
  +    (assert-equal '((((0 . 0) . (0 . 0)) . (1       . (0 . 0))) .
  +		    (((0 . 0) . (0 . 0)) . ((0 . 0) . (0 . 0))))
  +		  list)))
  +
  +(define-test |setf cadar apply error 1|
  +  (let ((list 0))
  +    (assert-error 'type-error
  +		  (apply #'(setf cadar) (list 1 list)))))
  +
  +(define-test |setf cadar apply error 2|
  +  (let ((list (copy-tree '(0 .
  +			   (((0 . 0) . (0 . 0)) . ((0 . 0) . (0 . 0)))))))
  +    (assert-error 'type-error
  +		  (apply #'(setf cadar) (list 1 list)))))
  +
  +(define-test |setf cadar apply error 3|
  +  (let ((list (copy-tree '((((0 . 0) . (0 . 0)) .                   0) .
  +			   (((0 . 0) . (0 . 0)) . ((0 . 0) . (0 . 0)))))))
  +    (assert-error 'type-error
  +		  (apply #'(setf cadar) (list 1 list)))))
  +
  +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  +;;;
  +;;; Tests for the (setf caddr) function and setf expander
   
   (define-test |setf caddr 1|
     (let ((list (copy-tree '((((0 . 0) . (0 . 0)) . ((0 . 0) . (0 . 0))) .
  
positive.code:     (assert-error 'type-error
  		  (setf (caddr list) 1))))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  ;;; Tests for the (setf cdaar) function
  
  (define-test |setf cdaar 1|
    (let ((list (copy-tree '((((0 . 0) . (0 . 0)) . ((0 . 0) . (0 . 0))) .
  
negative.code:     (assert-error 'type-error
  		  (setf (first list) 1))))
  		  
  (define-test setf.first.1
    (let ((list (copy-tree '(0 0 0 0 0 0 0 0 0 0))))
      (assert-equal 1 (setf (first list) 1))
      (assert-equal '(1 0 0 0 0 0 0 0 0 0) list)))
  
  (define-test setf.first.error.1
    (let ((list '()))
      (assert-error 'type-error
  		  (setf (first list) 1))))
  		  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  ;;; Tests for the (setf second) function and setf expander
  
  (define-test setf.second.1
    (let ((list (copy-tree '(0 0 0 0 0 0 0 0 0 0))))
  