sig
  type 'a t
  val create : unit -> 'AQueue.t
  val push : 'AQueue.t -> '-> unit
  val pop : 'AQueue.t -> 'Async.Std.Deferred.t
end