As an invariant, every list tail will be delayed
(cons-stream a b) ~ (cons a (delay b)) (define head car) (define (tail stream) (force (cdr stream))) (define empty-stream? null?) (define the-empty-stream '())