(cond ((consp form)
(let ((op (car form)))
(cond ((member op '(the truly-the))
- (specifier-type (second form)))
+ (values-specifier-type (second form)))
((eq 'function op)
(specifier-type 'function))
((and (legal-fun-name-p op)
(eq :declared (info :function :where-from op)))
- (fun-type-returns (info :function :type op)))
+ (let ((ftype (info :function :type op)))
+ (if (fun-type-p ftype)
+ (fun-type-returns ftype)
+ *wild-type*)))
(t
*wild-type*))))
((and (symbolp form)