-;; The future's in futures
-;; @@: ... kinda conflicts with ice-9 futures. Should we rename
-;; to "futurists"? :)
-
-(define (make-future call-first on-success on-fail on-error)
- ;; TODO: add error stuff here
- (lambda ()
- (let ((call-result (call-first)))
- ;; queue up calling the
- (run (on-success call-result)))))
-
-(define (agenda-on-error agenda)
- (const #f))
-
-(define (agenda-on-fail agenda)
- (const #f))
-
-(define* (request-future call-first on-success
- #:key
- (agenda (%current-agenda))
- (on-fail (agenda-on-fail agenda))
- (on-error (agenda-on-error agenda))
- (when #f))
- ;; TODO: error handling
- ;; do we need some distinction between expected, catchable errors,
- ;; and unexpected, uncatchable ones? Probably...?
- (make-run-request
- (make-future call-first on-success on-fail on-error)
- when))
-