anchor.diff:    (let ((c-file (make-pathname :type "c" :defaults output-defaults)))
       (with-open-file (out c-file :direction :output :if-exists :supersede)
         (with-open-file (in input-file :direction :input)
  -        (let* ((forms (loop for form = (read in nil nil)
  -                            while form collect form))
  +        (let* ((forms (let ((*package* *package*))
  +                        (loop for form = (read in nil nil)
  +                              while form collect form
  +                              when (eq (form-kind form) 'in-package)
  +                              do (setq *package*
  +                                       (find-package (second form))))))
                  (header-forms (remove-if-not #'header-form-p forms))
                  (body-forms (remove-if #'header-form-p forms)))
             (write-string *header* out)
  
positive.code:   (c-format out ")~%")
    (unless (keywordp lisp-name)
      (c-export out lisp-name))
    (let ((size-of-constant-name
           (symbolicate '#:size-of- lisp-name)))
      (c-export out size-of-constant-name)
      (c-format out "(cl:defconstant "
                size-of-constant-name lisp-name)
  
negative.code: (define-grovel-syntax flag (flag-string)
    (push flag-string *cc-flags*))
  
  ;;; This form also has some "read time" effects. See GENERATE-C-FILE.
  (define-grovel-syntax in-package (name)
    (c-format out "(cl:in-package #:")
    (c-print-symbol out name t)
  