anchor.diff:              (t nil)))))
   
   (defun generate-non-repeated-field-deserializer
  -    (class index lazy-p vbuf vidx dest &key raw-p)
  +    (class index lazy-p vbuf vidx dest)
     "Returns two values: The first is lisp code that deserializes the specified object
   to dest and updates vidx to the new index. The second is the tag of this field.
   
  
positive.code:   LAZY-P: True if and only if the field is lazy.
    VBUF: The buffer to read from.
    VIDX: The index of the buffer to read from & to update.
    DEST: The symbol name for the destination of deserialized data.
    RAW-P: If true, return a list of the arguments passed to any recursive
           deserialization call instead of calling the function."
    (let ((msg (and class (not (scalarp class))
                    (or (find-message class)
                        (find-enum class)
                        (find-map-descriptor class)))))
      (flet ((call-deserializer (msg vbuf start end &optional (end-tag 0))
               (if raw-p
                   `(list ,vbuf ,start ,end ,end-tag)
                   (call-pseudo-method :deserialize msg vbuf start end end-tag))))
        (cond ((scalarp class)
               (let* ((tag (make-tag class index))
                      (packed-tag (when (packed-type-p class)
  
negative.code:           (when (and (include-field field)
                       (not (skip-field field)))
              (multiple-value-bind (tags deserializers nslot rslot oneof-slot)
                  (generate-field-deserializer message field vbuf vidx)
                (assert tags)
                (assert deserializers)
                (loop for tag in tags
  