structure Queue:> QUEUE = struct type 'a queue = 'a list val empty_queue = nil exception Empty fun enq q x = q @ [x] fun deq nil = raise Empty | deq (x::q) = (x, q) fun empty nil = true | empty _ = false end;