+;;; A basic FIFO queue module.
+;;;
+
(module fifo
(make-fifo
fifo-push
fifo-pop
+ fifo-empty?
fifo->list)
(import scheme
(set! head '())
(set-cell-next! tail '()))
(cell-val old-tail)))
+ ((empty?) (null? head))
((->list)
(let loop ((this-cell head))
(if (null? this-cell)
(define (fifo-pop fifo)
(fifo 'pop))
+ (define (fifo-empty? fifo)
+ (fifo 'empty?))
+
(define (fifo->list fifo)
(fifo '->list)))