anchor.diff:           ,@body)))
   
   (defmacro or (&rest forms)
  -  (if (= 0 (list-len forms)) ;; heck, need destructuring-bind
  -      #'#t
  -      #`(let ((%%or-res ,(list-elt forms 0))) ;; heck, need hygiene
  +  (if (= 0 (list-len forms)) ; heck, need destructuring-bind
  +      #'#t ; heck, need to rethink #' syntax
  +      #`(let ((%%or-res ,(list-elt forms 0))) ; heck, need hygiene
             (if %%or-res
                 %%or-res
                 (or ,@(list-slice forms 1))))))
  
positive.code:         (unwind-protect (progn ,@body)
            (setq (dynamic ,name) old-value)))))
  
  ;; Conditions
  
  (defclass condition)
  (defclass serious-condition (condition))
  
negative.code: (defmacro setq (name namespace)
    #`(%%setq ,name ,namespace))
  
  ;;;; Common stuff
  
  (defmacro defvar (name &optional (value #'nil))
    #`(defparameter ,name (if (defined? ,name) ,name ,value)))
  