sig
  type 'a sequence = ('-> unit) -> unit
  type 'a klist = unit -> [ `Cons of 'a * 'CCFQueue.klist | `Nil ]
  type 'a equal = '-> '-> bool
  type 'a printer = Format.formatter -> '-> unit
  type +'a t
  val empty : 'CCFQueue.t
  val is_empty : 'CCFQueue.t -> bool
  val singleton : '-> 'CCFQueue.t
  val doubleton : '-> '-> 'CCFQueue.t
  exception Empty
  val cons : '-> 'CCFQueue.t -> 'CCFQueue.t
  val snoc : 'CCFQueue.t -> '-> 'CCFQueue.t
  val take_front : 'CCFQueue.t -> ('a * 'CCFQueue.t) option
  val take_front_exn : 'CCFQueue.t -> 'a * 'CCFQueue.t
  val take_front_l : int -> 'CCFQueue.t -> 'a list * 'CCFQueue.t
  val take_front_while :
    ('-> bool) -> 'CCFQueue.t -> 'a list * 'CCFQueue.t
  val take_back : 'CCFQueue.t -> ('CCFQueue.t * 'a) option
  val take_back_exn : 'CCFQueue.t -> 'CCFQueue.t * 'a
  val take_back_l : int -> 'CCFQueue.t -> 'CCFQueue.t * 'a list
  val take_back_while :
    ('-> bool) -> 'CCFQueue.t -> 'CCFQueue.t * 'a list
  val first : 'CCFQueue.t -> 'a option
  val last : 'CCFQueue.t -> 'a option
  val first_exn : 'CCFQueue.t -> 'a
  val last_exn : 'CCFQueue.t -> 'a
  val nth : int -> 'CCFQueue.t -> 'a option
  val nth_exn : int -> 'CCFQueue.t -> 'a
  val tail : 'CCFQueue.t -> 'CCFQueue.t
  val init : 'CCFQueue.t -> 'CCFQueue.t
  val append : 'CCFQueue.t -> 'CCFQueue.t -> 'CCFQueue.t
  val rev : 'CCFQueue.t -> 'CCFQueue.t
  val map : ('-> 'b) -> 'CCFQueue.t -> 'CCFQueue.t
  val ( >|= ) : 'CCFQueue.t -> ('-> 'b) -> 'CCFQueue.t
  val size : 'CCFQueue.t -> int
  val fold : ('-> '-> 'b) -> '-> 'CCFQueue.t -> 'b
  val iter : ('-> unit) -> 'CCFQueue.t -> unit
  val equal : 'CCFQueue.equal -> 'CCFQueue.t CCFQueue.equal
  val of_list : 'a list -> 'CCFQueue.t
  val to_list : 'CCFQueue.t -> 'a list
  val add_seq_front : 'CCFQueue.sequence -> 'CCFQueue.t -> 'CCFQueue.t
  val add_seq_back : 'CCFQueue.t -> 'CCFQueue.sequence -> 'CCFQueue.t
  val to_seq : 'CCFQueue.t -> 'CCFQueue.sequence
  val of_seq : 'CCFQueue.sequence -> 'CCFQueue.t
  val to_klist : 'CCFQueue.t -> 'CCFQueue.klist
  val of_klist : 'CCFQueue.klist -> 'CCFQueue.t
  val ( -- ) : int -> int -> int CCFQueue.t
  val ( --^ ) : int -> int -> int CCFQueue.t
  val print : 'CCFQueue.printer -> 'CCFQueue.t CCFQueue.printer
end