- (let ((lvar-type (lvar-type arg)))
- (unless (or (csubtypep cons-type lvar-type)
- (csubtypep null-type lvar-type))
- (assert-lvar-type arg list-type
- (lexenv-policy *lexenv*))
- (return *empty-type*))))
+ (when (eq (type-intersection (lvar-type arg) list-type)
+ *empty-type*)
+ (assert-lvar-type arg list-type
+ (lexenv-policy *lexenv*))
+ (return *empty-type*)))