anchor.diff:                          :initarg :undefiner-function)))
   
   (defmethod definition-name ((undefiner simple-undefiner) (syntax lisp-syntax) (form form))
  -  (form-conversion-error syntax form "Form ~A cannot define a ~A." (undefiner-type undefiner)))
  +  (invalid-form undefiner syntax form))
   
   (defmethod definition-name ((undefiner simple-undefiner) (syntax lisp-syntax) (form list-form))
     (if (>= (length (form-children form)) 2)
  
positive.code: `undefiner'. If it isn't, the results are undefined. `Syntax' is
  the Lisp syntax object that has `definition-form'."))
  
  (defclass simple-undefiner (undefiner)
    ((%undefiner-type :reader undefiner-type
                      :initform (error "A description must be provided.")
  
negative.code: 
  (define-simple-undefiner (defpackage "package") (syntax name form)
    (delete-package name))
  
  (defun get-listed-name (syntax form)
    "Retrieve the name of `form' under the assumption that the name
  is the second element of `form', and if this is a list, the first
  element of that list. The secondary value will be true if a name
  can be found, false otherwise."
    (if (and (form-list-p form)
             (>= (length (form-children form)) 2))
        (let ((name-form (second (form-children form))))
          (cond ((and (form-list-p name-form)
                      (form-children name-form))
                 (values (form-to-object syntax (first (form-children name-form))) t))
                ((form-token-p name-form)
                 (values (form-to-object syntax name-form) t))
                (t (values nil nil))))
        (values nil nil)))
  
  ;; Cannot recognize the common define-FOO-command macros.
  (define-undefiner (define-command "command")
    ((syntax form)
     (multiple-value-bind (name success) (get-listed-name syntax form)
       (if success name (invalid))))
    ((syntax name form)
     ;; Pick out the command table from the define-command form. The
     ;; command may also be in other command tables, but we can't find
     ;; those.
     (let ((name-form (listed (form-to-object syntax (second (form-children form))))))
       (destructuring-bind (ignore &key command-table keystroke &allow-other-keys) name-form
         (declare (ignore ignore))
         (when command-table
           (remove-command-from-command-table name command-table :errorp nil)
           (remove-keystroke-from-command-table command-table keystroke :errorp nil))))
     (fmakunbound name)))
  
  (define-undefiner (define-undefiner "undefiner")
    ((syntax form)
     (multiple-value-bind (name success) (get-listed-name syntax form)
       (if success name (invalid))))
    ((syntax name form)
     (remhash name *undefiners*)))
  
  (define-undefiner (define-simple-undefiner "simple undefiner")
    ((syntax form)
     (multiple-value-bind (name success) (get-listed-name syntax form)
       (if success name (invalid))))
    ((syntax name form)
     (remhash name *undefiners*)))
  