- ,(if *step-arguments-p*
- `(let ((*step* ,step-form))
- (step-values ,form-string (multiple-value-list ,values-form)))
- `(progn ,step-form ,values-form)))))))))
+ ,(if *step-arguments-p*
+ `(let ((*step* ,step-form))
+ ,(if (known-single-value-fun-p fun)
+ `((lambda (value)
+ (step-values ,form-string (list value))
+ value)
+ ,values-form)
+ `(multiple-value-call
+ (lambda (&rest values)
+ (step-values ,form-string values)
+ (values-list values))
+ ,values-form)))
+ `(progn ,step-form ,values-form)))))))))