Import Upstream version 20180207
[hcoop/debian/mlton.git] / lib / cml / util / imp-queue.sig
CommitLineData
7f918cf1
CE
1(* imp-queue.sig
2 * 2004 Matthew Fluet (mfluet@acm.org)
3 * Ported to MLton threads.
4 *)
5
6signature IMP_QUEUE =
7 sig
8 type 'a t
9
10 val clean: 'a t * ('a -> bool) -> unit
11 val cleanAndDeque: 'a t * ('a -> bool) -> 'a option
12 val cleanPrefix: 'a t * ('a -> bool) -> unit
13 val deque: 'a t -> 'a option
14 val empty: 'a t -> bool
15 val enque: 'a t * 'a -> unit
16 val enqueAndClean: 'a t * 'a * ('a -> bool) -> unit
17 val new: unit -> 'a t
18 val peek: 'a t -> 'a option
19 val reset: 'a t -> unit
20 end