sig
  type 'a t
  exception Empty
  val create : unit -> 'CCDeque.t
  val clear : 'CCDeque.t -> unit
  val is_empty : 'CCDeque.t -> bool
  val equal : ?eq:('-> '-> bool) -> 'CCDeque.t -> 'CCDeque.t -> bool
  val compare : ?cmp:('-> '-> int) -> 'CCDeque.t -> 'CCDeque.t -> int
  val length : 'CCDeque.t -> int
  val push_front : 'CCDeque.t -> '-> unit
  val push_back : 'CCDeque.t -> '-> unit
  val peek_front : 'CCDeque.t -> 'a
  val peek_back : 'CCDeque.t -> 'a
  val take_back : 'CCDeque.t -> 'a
  val take_front : 'CCDeque.t -> 'a
  val append_front : into:'CCDeque.t -> 'CCDeque.t -> unit
  val append_back : into:'CCDeque.t -> 'CCDeque.t -> unit
  val iter : ('-> unit) -> 'CCDeque.t -> unit
  val fold : ('-> '-> 'b) -> '-> 'CCDeque.t -> 'b
  type 'a gen = unit -> 'a option
  type 'a sequence = ('-> unit) -> unit
  val of_seq : 'CCDeque.sequence -> 'CCDeque.t
  val to_seq : 'CCDeque.t -> 'CCDeque.sequence
  val of_gen : 'CCDeque.gen -> 'CCDeque.t
  val to_gen : 'CCDeque.t -> 'CCDeque.gen
  val add_seq_front : 'CCDeque.t -> 'CCDeque.sequence -> unit
  val add_seq_back : 'CCDeque.t -> 'CCDeque.sequence -> unit
  val copy : 'CCDeque.t -> 'CCDeque.t
  val of_list : 'a list -> 'CCDeque.t
  val to_list : 'CCDeque.t -> 'a list
  val to_rev_list : 'CCDeque.t -> 'a list
  type 'a printer = Format.formatter -> '-> unit
  val print : 'CCDeque.printer -> 'CCDeque.t CCDeque.printer
end