+(defun closurep (object)
+ (= sb!vm:closure-header-widetag (widetag-of object)))
+
+(defun %fun-fun (function)
+ (declare (function function))
+ (case (widetag-of function)
+ (#.sb!vm:simple-fun-header-widetag
+ function)
+ (#.sb!vm:closure-header-widetag
+ (%closure-fun function))
+ (#.sb!vm:funcallable-instance-header-widetag
+ (funcallable-instance-fun function))))
+
+(defun %closure-values (object)
+ (declare (function object))
+ (coerce (loop for index from 0 below (1- (get-closure-length object))
+ collect (%closure-index-ref object index))
+ 'simple-vector))
+
+(defun %fun-lambda-list (object)
+ (%simple-fun-arglist (%fun-fun object)))
+