`(let ((,value ,x))
(cond
,@(mapcar (lambda (c)
- (if (eq (car c) t)
+ (if (find (car c) '(t otherwise))
`(t ,@(rest c))
`((,(ecase (car c)
(integer 'integerp)
(cons 'consp)
(list 'listp)
+ (vector 'vectorp)
+ (character 'characterp)
(sequence 'sequencep)
(symbol 'symbolp)
(function 'functionp)
(array 'arrayp)
(string 'stringp)
(atom 'atom)
- (null 'null))
+ (null 'null)
+ (package 'packagep))
,value)
,@(or (rest c)
(list nil)))))