anchor.diff:                    `(multiple-value-bind (payload-len payload-start)
                          (decode-uint32 ,vbuf ,vidx)
                        (setq ,vidx (+ payload-start payload-len))
  +                     ;; If this field is declared lazy, then don't deserialize.
  +                     ;; Instead, create a new message with %BYTES field set to
  +                     ;; the bytes on the wire.
                        ,(if lazy-p
                             `(setq ,dest (make-message-with-bytes
                                           ',class (subseq ,vbuf payload-start ,vidx)))
  
positive.code:            (type fixnum ,size))
            (let ((,bytes (and (slot-exists-p ,vobj '%bytes)
                               (proto-%bytes ,vobj))))
              (cond
                (,bytes
                 (setf ,size (length ,bytes))
  
negative.code:                     (proto-%bytes object)))
          (size 0))
      (cond
        ;; If OBJECT has BYTES bound, then it is a lazy field, and BYTES is
        ;; the pre-computed serialization of OBJECT, so output that.
        (bytes
         (setf size (length bytes))
         (buffer-ensure-space buffer size)
         (fast-octets-out buffer bytes)
         size)
        ;; Otherwise, serialize as normal.
        (t
         (dolist (field (proto-fields msg-desc))
           (iincf size (emit-field object field buffer)))
  