(define-library (scheme lazy) (import (chibi)) (export delay force delay-force make-promise promise?) (begin (define (make-promise x) (delay x))) (cond-expand (auto-force ) (else (begin (define (promise? x) (and (pair? x) (null? (cdr x)) (pair? (car x)) (or (eq? #t (caar x)) (and (eq? #f (caar x)) (procedure? (cdar x))))))))))