+ plist)))))))
+
+(defmethod check-method-type
+ ((method sod-method) (message aggregating-message)
+ (type c-function-type))
+ (let ((wanted (aggregating-message-method-return-type
+ message (sod-message-combination message)))
+ (msgtype (sod-message-type message)))
+ (unless (c-type-equal-p (c-type-subtype type) wanted)
+ (error "Method return type ~A doesn't match message ~A"
+ (c-type-subtype msgtype) (c-type-subtype type)))
+ (unless (argument-lists-compatible-p (c-function-arguments msgtype)
+ (c-function-arguments type))
+ (error "Method arguments ~A don't match message ~A" type msgtype))))