(with-monad %store-monad
(return #f)))))
-(define-syntax-rule (with-shepherd-error-handling body ...)
- (warn-on-system-error
- (guard (c ((shepherd-error? c)
- (report-shepherd-error c)))
- body ...)))
+(define-syntax-rule (with-shepherd-error-handling mbody ...)
+ "Catch and report Shepherd errors that arise when binding MBODY, a monadic
+expression in %STORE-MONAD."
+ (lambda (store)
+ (warn-on-system-error
+ (guard (c ((shepherd-error? c)
+ (report-shepherd-error c)))
+ (values (run-with-store store (begin mbody ...))
+ store)))))
(define (report-shepherd-error error)
"Report ERROR, a '&shepherd-error' error condition object."