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