anchor.diff:      ;; In this case, REF should already contain the field, obviating
       ;; OFFSET
       (declare (ignore offset))
  -    `(ash (logand ,mask ,(make-field-deref field ref)) ,back-shift)))
  +    (if (= 0 back-shift)
  +        `(logand ,mask ,(make-field-deref field ref))
  +        `(ash (logand ,mask ,(make-field-deref field ref)) ,back-shift))))
   
   (defun make-bitfield-merge (field ref val)
     (multiple-value-bind (offset mask back-shift)
  
positive.code: 
  (defun alloc-ptr (type &optional (count 1))
    "Return a pointer allocated to the size of `TYPE`"
    (cffi-sys:%foreign-alloc (* count (foreign-type-size type))))
  
  (defun alloc (type &optional (count 1))
    "Return a foreign wrapper for `TYPE` with its pointer allocated.
  
negative.code: 
  (defun make-array-ref (field ref index)
    "`REF` must already refer to the field.  Use `MAKE-FIELD-REF` first."
    (if (> index 0)
        (let ((size (foreign-type-size (basic-foreign-type (foreign-type field)))))
          `(cffi-sys:inc-pointer ,ref ,(if (= size 1) index `(* ,size ,index))))
        ref))
  
  (defun make-field-deref (field ref)
    (let* ((type (or (basic-foreign-type (foreign-type field))
  