anchor.diff:                      (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)))
  
positive.code:                   `(multiple-value-bind (payload-len payload-start)
                         (decode-uint32 ,vbuf ,vidx)
                       (setq ,vidx (+ payload-start payload-len))
                       ,(if lazy-p
                            `(setq ,dest (make-message-with-bytes
                                          ',class (subseq ,vbuf payload-start ,vidx)))
  
negative.code:            (type fixnum ,size))
            (let ((,bytes (and (slot-exists-p ,vobj '%bytes)
                               (proto-%bytes ,vobj))))
              ;; If BYTES is bound, then VOBJ is a lazy field, and BYTES is the pre-computed
              ;; serialization of VOBJ. So, just output that.
              (cond
                (,bytes
                 (setf ,size (length ,bytes))
  