176 |
(check-subtypep t `(or ,type2 (not ,type1)) t) |
(check-subtypep t `(or ,type2 (not ,type1)) t) |
177 |
(check-subtypep t `(or (not ,type2) ,type1) t) |
(check-subtypep t `(or (not ,type2) ,type1) t) |
178 |
(check-subtypep t `(or (not ,type1) ,type2) t))) |
(check-subtypep t `(or (not ,type1) ,type2) t))) |
179 |
|
|
180 |
|
(defun check-all-subtypep (type1 type2) |
181 |
|
(append |
182 |
|
(check-subtypep type1 type2 t) |
183 |
|
(check-subtypep `(not ,type2) `(not ,type1) t) |
184 |
|
(check-subtypep `(and ,type1 (not ,type2)) nil t) |
185 |
|
(check-subtypep t `(or (not ,type1) ,type2) t))) |
186 |
|
|
187 |
|
(defun check-all-not-subtypep (type1 type2) |
188 |
|
(append |
189 |
|
(check-subtypep type1 type2 nil) |
190 |
|
(check-subtypep `(not ,type2) `(not ,type1) nil))) |
191 |
|
|
192 |
(defun check-subtypep (type1 type2 is-sub &optional should-be-valid) |
(defun check-subtypep (type1 type2 is-sub &optional should-be-valid) |
193 |
(multiple-value-bind |
(multiple-value-bind |