force: avoid double promise-forcer test

This commit is contained in:
Matthew Flatt 2020-05-14 19:12:52 -06:00
parent 272271f36f
commit 90e708d78e

View File

@ -113,10 +113,11 @@
v))))
;; dispatcher for composable promises, generic promises, and other values
(define (force promise)
(if (promise? promise)
((promise-forcer promise) promise) ; dispatch to specific forcer
promise)) ; different from srfi-45: identity for non-promises
(define (force v)
(let ([forcer (promise-forcer v #f)])
(if forcer
(forcer v) ; dispatch to specific forcer
v))) ; different from srfi-45: identity for non-promises
;; ----------------------------------------------------------------------------
;; Struct definitions