+\f
+;;; Request to run stuff
+;;; ====================
+
+(define-record-type <run-request>
+ (make-run-request proc when)
+ run-request?
+ (proc run-request-proc)
+ (when run-request-when))
+
+(define* (run proc #:optional when)
+ (make-run-request proc when))
+
+(define-syntax-rule (wrap body ...)
+ (lambda ()
+ body ...))
+
+(define-syntax-rule (run-wrap body ...)
+ (run (wrap body ...)))
+
+(define-syntax-rule (run-wrap-at body ... when)
+ (run (wrap body ...) when))
+