


## fifo.api
# Compiled by:
# src/lib/std/standard.lib# See also:
# src/lib/src/queue.api# Implemented by:
# src/lib/src/fifo.pkg# Applicative fifos
api Fifo {
Fifo(X);
exception DEQUEUE;
empty: Fifo(X);
is_empty: Fifo(X) -> Bool;
enqueue: (Fifo(X), X) -> Fifo(X);
dequeue: Fifo(X) -> (Fifo(X), X);
# Drop all queue elements for which
# given predicate returns TRUE:
#
delete: (Fifo(X), (X -> Bool)) -> Fifo(X);
head: Fifo(X) -> X;
peek: Fifo(X) -> Null_Or(X);
length: Fifo(X) -> Int;
contents: Fifo(X) -> List(X);
apply: (X -> Void) -> Fifo(X) -> Void;
map: (X -> Y) -> Fifo(X) -> Fifo(Y);
fold_left: ((X, Y) -> Y) -> Y -> Fifo(X) -> Y;
fold_right: ((X, Y) -> Y) -> Y -> Fifo(X) -> Y;
}; # api Fifo
## COPYRIGHT (c) 1993 by AT&T Bell Laboratories. See COPYRIGHT file for details.
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2012,
## released under Gnu Public Licence version 3.


