; http://cap-lore.com/code/Scheme/Stream.html
; (ylppa (fileVal "stream") (lambda (sm si SG->lst lst->SG fs Cart)
(list
  (lambda (sg fun)(lambda () (let ((s (sg))) (lambda ()
    (let ((ne (s))) (and ne (fun ne)))))))
  (lambda (k) (lambda () (let ((n 0)) (lambda ()
    (and (< n k) (let ((i n)) (set! n (+ n 1)) i))))))
  (lambda (sg) (reverse (let ((g (sg))) (let w ((e (g))(lst '()))
          (if e (w (g) (cons e lst)) lst)))))
  (lambda (l) (lambda () (let ((c l)) (lambda () (and (pair? c)
     (let ((v (car c))) (begin (set! c (cdr c)) v)))))))
  (lambda (sg fil) (lambda () (let ((sc (sg))) (lambda ()
      (let scan () (let ((ne (sc))) (and ne (if (fil ne) ne (scan)))))))))
  (lambda (g h) (lambda () (let* ((G (g))(H (h))(gs (G)))
     (lambda () (let ((n (H)))
        (if (not n) (begin (set! H (h)) (set! gs (G)) (set! n (H))))
        (and gs (cons gs n)))))))
)