(index ("lazy" 0) ("lazy-strict" 325) ("eager" 834) ("force" 971) ("delay" 1244) ("lazy-promise?" 1388) ("eager-promise?" 1467) ("recursive-promise?" 1548) ("promise?" 1715))
(def (sig (syntax "(lazy EXPRESSION) => promise" (id lazy))) (p "Returns a promise for " (tt "EXPRESSION") ", which must evaluate to a SRFI 45 promise. (See " (tt "lazy-strict") ".}") (p "The promise will be iteratively forced, overwriting the promise at each step before the next iteration, so as to avoid storage leaks."))
(def (sig (procedure "(lazy-strict [STRICT?]) => boolean" (id lazy-strict))) (p "The body " (tt "EXPRESSION") " of a " (tt "lazy") " promise must produce a result of type " (tt "promise") " according to SRFI 45. This is the default behavior of this implementation. To accept a more lenient interpretation call with a value of " (tt "#f") " for " (tt "STRICT?") ".") (p "The " (tt "\"improper use of `lazy'\"") " error from " (tt "force") " serves notice that a lazy expression was not of the correct type."))
(def (sig (syntax "(eager EXPRESSION) => promise" (id eager))) (p "Returns a promise but immediately evaluates " (tt "EXPRESSION") "."))
(def (sig (procedure "(force PROMISE) => OBJECT" (id force))) (p "Returns the result of the evaluation of " (tt "PROMISE") ". When " (tt "PROMISE") " is an R5RS promise an R5RS " (tt "force") " is performed and when " (tt "PROMISE") " is not a promise it is the result."))
(def (sig (syntax "(delay EXPRESSION) => promise" (id delay))) (p "Returns a SRFI-45 promise, a delayed evaluation of " (tt "EXPRESSION") "."))
(def (sig (procedure "(lazy-promise? OBJECT) => boolean" (id lazy-promise?))))
(def (sig (procedure "(eager-promise? OBJECT) => boolean" (id eager-promise?))))
(def (sig (procedure "(recursive-promise? OBJECT) => boolean" (id recursive-promise?))) (p "Is the " (tt "OBJECT") " a recursive-promise; an eager or lazy promise?"))
(def (sig (procedure "(promise? OBJECT) => boolean" (id promise?))) (p "Some kind of promise? An R5RS promise or a recursive-promise."))
