anchor.diff:                          ,@constant-defs
                           ,@reader-defs
                           ,@writer-defs
  -                        (defconstant ,(intern (format nil "+~A-LENGTH+" class-name)) ,offset)
  +                        (defconstant ,(intern (with-standard-io-syntax (format nil "+~A-LENGTH+" class-name))) ,offset)
                           (defclass ,class-name ()
                             ,slot-definitions
                             (:default-initargs ,@default-initargs))))))))
  
positive.code: (defmacro define-octet-header (class-name &rest field-defs)
    (let ((offset 0))                     ; could be integrated in the LOOP?
      (flet ((offset-constant-symbol (name)
               (intern (format nil "+~A-~A-OFFSET+" class-name
                               (string-upcase (symbol-name name)))))
             (length-constant-symbol (name)
               (intern (format nil "+~A-~A-LENGTH+" class-name
                               (string-upcase (symbol-name name)))))
             (keywordify-name (name)
               (intern (string-upcase (symbol-name name))
                       (find-package "KEYWORD"))))
        (loop for (name length kind) in field-defs
              collect `(defconstant ,(offset-constant-symbol name)
                        ,offset) into constant-defs
  
negative.code: (in-package :archive)
  
  (defun extractor-function-name (entry-name field-name)
    (intern (with-standard-io-syntax (format nil "~A-READ-~A-FROM-BUFFER" entry-name field-name))))
  (defun injector-function-name (entry-name field-name)
    (intern (with-standard-io-syntax (format nil "~A-WRITE-~A-TO-BUFFER" entry-name field-name))))
  
  (defmacro with-extracted-fields ((entry-class buffer offset &rest fields)
                                   &body body)
  