( queue = (list=) (enqueue=.(.!arg) !(its.list):?(its.list)) ( dequeue = x . !(its.list):?(its.list) (.?x) & !x ) (empty=.!(its.list):) ) & new$queue:?Q & ( (Q..enqueue)$1 & (Q..enqueue)$2 & (Q..enqueue)$3 & out$((Q..dequeue)$) & (Q..enqueue)$4 & out$((Q..dequeue)$) & out$((Q..dequeue)$) & out $ ( The queue is ((Q..empty)$&|not) empty ) & out$((Q..dequeue)$) & out $ ( The queue is ((Q..empty)$&|not) empty ) & out$((Q..dequeue)$) & out$Success! | out$"Attempt to dequeue failed" ) ;