anchor.diff:               (assert (eq (car result) 'progn) ()
                        "The macroexpansion for ~S failed" field)
                (map () #'collect-type-form (cdr result))))
  -          ((define-extension define-map)
  -           (destructuring-bind (&optional progn model-type model definers extra-field extra-slot)
  +          ((define-map)
  +           (destructuring-bind (definer extra-field extra-slot)
                  (macroexpand-1 field env)
  -             (assert (eq progn 'progn) ()
  -                     "The macroexpansion for ~S failed" field)
  -             (map () #'collect-form definers)
  -             (case model-type
  -               ((define-map)
  -                (when extra-slot
  -                  (collect-slot extra-slot))
  -                (setf (proto-field-offset extra-field) field-offset)
  -                (incf field-offset)
  -                (collect-non-lazy-field extra-field)
  -                (push extra-field (proto-fields msg-desc)))
  -               ((define-extension)
  -                (push model (proto-extensions msg-desc))))))
  +             (collect-form definer)
  +             (collect-slot extra-slot)
  +             (setf (proto-field-offset extra-field) field-offset)
  +             (incf field-offset)
  +             (collect-non-lazy-field extra-field)
  +             (push extra-field (proto-fields msg-desc))))
  +          ((define-extension)
  +           (destructuring-bind (from to) (cdr field)
  +             (let* ((to (etypecase to
  +                          (integer to)
  +                          (symbol (if (string-equal to "MAX") +max-field-number+ to))))
  +                    (ext-desc (make-instance 'extension-descriptor
  +                                             :from from
  +                                             :to (if (eq to 'max) +max-field-number+ to))))
  +               (push ext-desc (proto-extensions msg-desc)))))
             ((define-oneof)
              (destructuring-bind (&optional progn oneof-desc)
                  (macroexpand-1 field env)
  
positive.code: 
  (defmacro define-map (field-name &key key-type value-type json-name index
                                   value-kind val-default)
    "Define a lisp type given the data for a protobuf map type.
  
   Parameters:
    FIELD-NAME: Lisp name of the field containing this map.
  
negative.code:                                         :value-type value-type
                                          :value-kind value-kind)))
      (record-protobuf-object class map-desc :map)
      `((record-protobuf-object ',class ,map-desc :map)
        ,mfield
        ,mdata)))
  
  (defmacro define-oneof (name (&key synthetic-p) &body fields)
    "Creates a oneof descriptor and the defining forms for its fields.
  