sig
  type t = Ast.term BatDeque.t
  val empty : 'BatDeque.dq
  val is_empty : 'BatDeque.dq -> bool
  val add : '-> 'BatDeque.dq -> 'BatDeque.dq
  val add_list : 'a list -> 'BatDeque.dq -> 'BatDeque.dq
  val choose : 'BatDeque.dq -> ('a * 'BatDeque.dq) option
  val size : 'BatDeque.dq -> int
end