(defun legal-fun-name-p (name)
(or (symbolp name)
(and (consp name)
- (eq (car name) 'setf)
+ (or (eq (car name) 'setf)
+ (eq (car name) 'sb!pcl::class-predicate))
(consp (cdr name))
(symbolp (cadr name))
(null (cddr name)))))
(cond ((symbolp fun-name)
fun-name)
((and (consp fun-name)
- (= (length fun-name) 2)
- (eq (first fun-name) 'setf))
+ (legal-fun-name-p fun-name))
(second fun-name))
(t
(error "not legal as a function name: ~S" fun-name))))