Module AQueue

module AQueue: sig .. end
Async exercise

type 'a t 
An asynchronous queue. 'a s can be pushed onto the queue; popping blocks until the queue is non-empty and then returns an element.
val create : unit -> 'a t
Create a new queue
val push : 'a t -> 'a -> unit
Add an element to the queue.
val pop : 'a t -> 'a Deferred.t
Wait until an element becomes available, and then return it.