chickadee » forcible » expectable

(expectable [NAME] [THUNK]) -> PROCEDURE PROMISEprocedure

NAME is any object and used for debug purposes only (currently passed as name of an internal mutex). Returns two values. PROCEDURE takes a flag indicating whether the PROMISE shall return successful (if #t) or fail and values to return from forceing the PROMISE. If the flag is #f only the first of those values is used and passed to the exception handler as the exception raised from the PROMISE.

When THUNK is given the resulting promise behaves like a promise created by lazy.