anchor.diff:             (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))
  
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:                     (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)))
  