sig
  type 'a t
  val empty : unit -> 'Common.QUEUE.t
  val singleton : '-> 'Common.QUEUE.t
  val push : 'Common.QUEUE.t -> '-> unit
  val pop : 'Common.QUEUE.t -> 'a option
  val fold : ('-> '-> 'b) -> '-> 'Common.QUEUE.t -> 'b
end