anchor.diff:      (loop for field in (proto-fields message)
             for lisp-type = (proto-class field)
             for slot-value-1
  -            = (when (not (eq lisp-type :bool))
  +            = (unless (eq lisp-type :bool)
                   (slot-value message-1 (proto-internal-field-name field)))
             for slot-value-2
               = (when slot-value-1
  
positive.code:                     (or (scalarp lisp-type) (find-enum lisp-type)))
              do (unless (scalar-field-equal slot-value-1 slot-value-2)
                   (return-from proto-equal nil))
            when (not (and slot-value-1 slot-value-2))
              do (when (or slot-value-1 slot-value-2)
                   (return-from proto-equal nil))
            when (and slot-value-1 (find-message lisp-type))
  
negative.code:             = (when set-field-1 (proto-class
                                   (aref (oneof-descriptor-fields oneof)
                                        set-field-1)))
            unless (and set-field-1 set-field-2)
              do (when (or set-field-1 set-field-2)
                   (return-from proto-equal nil))
            unless (equal (oneof-set-field slot-value-1)
                          (oneof-set-field slot-value-2))
              do (return-from proto-equal nil)
            when (or (scalarp lisp-type) (find-enum lisp-type))
              do (unless (scalar-field-equal (oneof-value slot-value-1)
  