anchor.diff:  (defun proper-list-p (list)
     (null (last list 0)))
   
  -(define-condition form-is-not-a-proper-list (compilation-program-error) ())
  +(define-condition form-is-must-be-a-proper-list (compilation-program-error) ())
   
   (defun make-ast (form)
     (cond ((symbolp form)
  
positive.code:   ())
  
  (defmethod convert-special ((op (eql 'setq)) ast environment)
    ;; FIXME check if the length is odd
    (assert (= (length (children ast)) 3))
    ;; FIXME check ever other argument
    (assert (typep (car (children ast)) 'symbol-ast))
    ;; FIXME: issue a warning if the variable doesn't exist 
    ;; FIXME: turn it into a progn of setqs with two args. 
    (make-instance 'setq-ast
  
negative.code: 	     (make-instance 'constant-ast
  			    :form form))
  	    (t
  	     (unless (proper-list-p form)
  	       (error 'form-must-be-a-proper-list
  		      :form form))
  	     (make-instance 'compound-ast
  			    :form form
  			    :children (mapcar (lambda (child)
  