- (let ((specifier (hairy-type-specifier type2)))
- (cond
- ((and (consp specifier) (eql (car specifier) 'satisfies))
- (case (cadr specifier)
- ((keywordp) (if (type= type1 (specifier-type 'symbol))
- (values nil t)
- (invoke-complex-subtypep-arg1-method type1 type2)))
- (t (invoke-complex-subtypep-arg1-method type1 type2))))
- (t (invoke-complex-subtypep-arg1-method type1 type2)))))
+ (if (maybe-reparse-specifier! type2)
+ (csubtypep type1 type2)
+ (let ((specifier (hairy-type-specifier type2)))
+ (cond ((and (consp specifier) (eql (car specifier) 'satisfies))
+ (case (cadr specifier)
+ ((keywordp) (if (type= type1 (specifier-type 'symbol))
+ (values nil t)
+ (invoke-complex-subtypep-arg1-method type1 type2)))
+ (t (invoke-complex-subtypep-arg1-method type1 type2))))
+ (t
+ (invoke-complex-subtypep-arg1-method type1 type2))))))