- changed title to promise is evaluated twice
This should return (1 1 101) but (1 1 102)
(let ((n 100))
(define r (delay (begin (set! n (+ n 1)) 1)))
(define s (delay-force r))
(define t (delay-force s))
(let ((result1 (force t))
(result2 (force r)))
(list result1 result2 n)))