anchor.diff:                                   ;; todo(jgodbout):delete asap
                                    (:predicate nil))
              ,@(remove nil
  -              (mapcar (lambda (slot)
  +              (append
  +               (mapcar (lambda (slot)
                           (let ((name (field-data-internal-slot-name slot))
                                 (type (field-data-type slot))
                                 (initform (field-data-initform slot)))
                             (unless (eq type 'boolean)
                               `(,name ,(get-default-form type initform) :type ,type))))
  -                      slots)))
  +                       slots)
  +               (mapcar (lambda (oneof)
  +                         (let ((name (oneof-descriptor-internal-name oneof)))
  +                           `(,name (make-instance 'oneof-data) :type oneof-data)))
  +                       oneofs))))
            ;; Define public accessors for fields.
            ,@(mapcan (lambda (field public-slot-name)
                        (make-structure-class-forms-non-lazy proto-type
  
positive.code:         (unless (or (eq type alias-for) (find-class type nil))
            (collect-type-form `(deftype ,type () ',alias-for)))
            (collect-type-form
             (make-structure-class-forms type slots non-lazy-fields lazy-fields)))
        (collect-form `(record-protobuf-object ',type ,message :message))
        ;; Group can never be a top level element.
        `(progn
  
negative.code:         ((enum-default-value `,type) (enum-default-value `,type))
          (t `(enum-default-value ',type))))))
  
  (defun make-structure-class-forms (proto-type slots non-lazy-fields lazy-fields oneofs)
    "Makes the definition forms for the define-group and define-message macros.
  
  Arguments:
    PROTO-TYPE: The Lisp type name of the proto message.
    SLOTS: Slot definitions created by PROCESS-FIELD.
    NON-LAZY-FIELDS: Field definitions for non-lazy fields.
    LAZY-FIELDS: Field definitions for lazy fields.
    ONEOFS: A list of oneof descriptors for the message/group."
    (let* ((public-constructor-name (fintern "MAKE-~A" proto-type))
           (hidden-constructor-name (fintern "%MAKE-~A" proto-type))
           (public-lazy-slot-names (mapcar #'proto-external-field-name lazy-fields))
  