-(defmethod (setf documentation) (new-value (x function) (doc-type (eql 't)))
- (if (typep x 'generic-function)
- (setf (slot-value x 'documentation) new-value)
- (let ((name (%fun-name x)))
- (when (and name (typep name '(or symbol cons)))
- (setf (info :function :documentation name) new-value))))
+(defmethod documentation ((x symbol) (doc-type (eql 'optimize)))
+ (random-documentation x 'optimize))
+
+(defun (setf fun-doc) (new-value x)
+ (etypecase x
+ (generic-function
+ (setf (slot-value x '%documentation) new-value))
+ #+sb-eval
+ (sb-eval:interpreted-function
+ (setf (sb-eval:interpreted-function-documentation x)
+ new-value))
+ (function
+ (let ((name (%fun-name x)))
+ (when (and name (typep name '(or symbol cons)))
+ (setf (info :function :documentation name) new-value)))))