(make-queue) ;; returns a newly created empty queue. (empty-queue? queue) ;; returns #t if queue is empty, otherwise #f. (head queue) ;; returns the element which is at the head of queue, ;; that is, the element that has been waiting the longest, ;; provided queue is nonempty. (dequeue! queue) ;; removes the head of queue, provided queue is ;; nonempty. The return value is the modified queue. (enqueue! queue item) ;; inserts item at the tail of queue, that is, as the most ;; recent arrival. The return value is the modified queue.