lib/seq.ss
#lang scheme

(define (sequence-ref s i)
  (define-values (more? get) (sequence-generate s))
  (let loop ([n i])
    (if (more?)
        (if (zero? n)
            (get)
            (begin
              (get)
              (loop (sub1 n))))
        (error 'sequence-ref "Sequence does not contain ~e elements" i))))

(define (sequence-count s)
  (define-values (more? get) (sequence-generate s))
  (let loop ([i 0])
    (if (more?)
        (begin (get) (loop (add1 i)))
        i)))

(define (sequence->list s)
  (for/list ([e s]) e))

; XXX
(define (sequenceof c)
  sequence?)

(provide (all-defined-out))