anchor.diff:            (let* ((label (if (and (eq *syntax* :proto3) (eq label :optional))
                               :singular
                               label))
  +                 ;; Singular fields do not have offsets, as they don't have has-* functions.
  +                 (offset (and (not (eq label :singular)) field-offset))
                    (default
                     (cond ((and (eq label :repeated)
                                 (eq repeated-type :vector))
  
positive.code:                (push oneof-desc (proto-oneofs msg-desc))
                 (collect-oneof oneof-desc))))
            (otherwise
             (multiple-value-bind (field slot)
                 (process-field field :conc-name conc-name
                                      :alias-for alias-for
                                      :field-offset field-offset
  
negative.code: 
  (defun process-field (field &key conc-name alias-for field-offset bool-index bool-values)
    "Process one field descriptor within 'define-message' or 'define-extend'.
  Returns a 'proto-field' object, a CLOS slot form, the field index, and a boolean which
  indicates if FIELD has an offset.
  
  Arguments
    FIELD: The description of the field as laid out in the proto schema.
  