sig
  type 'a deque
  val create : unit -> 'Deque.deque
  val is_empty : 'Deque.deque -> bool
  val insert_head : '-> 'Deque.deque -> unit
  val insert_tail : '-> 'Deque.deque -> unit
  val remove_head : 'Deque.deque -> 'a
  val remove_tail : 'Deque.deque -> 'a
  val iterate : ('-> unit) -> 'Deque.deque -> unit
end