anchor.diff:                     (symbol-package name))))
       (assert (<= *bitfield-position* +bitfield-max-bits+))
       `(progn
  +       (deftype ,name () '(unsigned-byte ,*bitfield-position*))
          ;; Define all slot readers.
          ,@(loop for slot in slots
                  collect
                  `(declaim (inline ,(bitfield-slot-reader slot)))
                  collect
                  `(defun ,(bitfield-slot-reader slot) (,name)
  -                  (declare (type (unsigned-byte ,*bitfield-position*) ,name))
  +                  (declare (,name ,name))
                     ,(bitfield-slot-unpack
                       slot
                       `(ldb (byte ,(bitfield-slot-size slot)
  
positive.code:                                collect
                                 `(,(bitfield-slot-name slot)
                                   (,(bitfield-slot-reader slot) ,name))))
           (declare (type (unsigned-byte ,*bitfield-position*) ,name))
           (logior
            ,@(loop for slot in slots
                    collect
  
negative.code: 
  3. A reader function named {NAME}-{SLOT-NAME} for each slot.
  
  In addition to these functions, NAME is defined as a suitable subtype
  of (and unsigned-byte fixnum).
  
  Currently this macro supports boolean, unsigned-byte and signed-byte slots.
  
   Example:
  