anchor.diff:  	nil
   	(aux args))))
   
  +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  +;;;
  +;;; Macro AND.
  +
   (defmacro and (&whole form &rest args)
     (check-form-proper-list form)
     (labels ((aux (forms)
  
positive.code: 	t
  	(aux args))))
  
  (defmacro when (&whole form &rest args)
    (check-form-proper-list form)
    (check-argcount form 1 nil)
  
negative.code: 	 nil
  	 (progn ,@body))))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  ;;; Macro COND.
  
  (defmacro cond (&whole form &rest clauses)
    (check-form-proper-list form)
    (labels ((aux (clauses)
  	     (if (null clauses)
  		 nil
  		 (let ((clause (car clauses)))
  		   (if (not (and (proper-list-p clause)
  				 (not (null clause))))
  		       (error 'malformed-cond-clause
  			      :name 'cond
  			      :clause clause)
  		       (if (null (cdr clause))
  			   `(or ,(car clause)
  				,(aux (cdr clauses)))
  			   `(if ,(car clause)
  				(progn ,@(cdr clause))
  				,(aux (cdr clauses)))))))))
      (aux clauses)))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  ;;; Macro CASE.
  
  ;;; Take a list of keys (known to be a proper list), and the name of a
  ;;; variable, and produce a list of forms (eql <variable> key).
  