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