#lang racket (require racket/generator) (define nats (generator () (let ([n 0]) (define (nat-loop) (yield n) (set! n (add1 n)) (cons (nat-loop) empty)) (nat-loop)))) (nats) (nats) (nats) (nats) (nats) (nats)