sig
  type 'a sequence = ('-> unit) -> unit
  type 'a printer = Format.formatter -> '-> unit
  type 'a klist = unit -> [ `Cons of 'a * 'CCSimple_queue.klist | `Nil ]
  type 'a gen = unit -> 'a option
  type +'a t
  val empty : 'CCSimple_queue.t
  val is_empty : 'CCSimple_queue.t -> bool
  val push : '-> 'CCSimple_queue.t -> 'CCSimple_queue.t
  val snoc : 'CCSimple_queue.t -> '-> 'CCSimple_queue.t
  val peek : 'CCSimple_queue.t -> 'a option
  val peek_exn : 'CCSimple_queue.t -> 'a
  val pop : 'CCSimple_queue.t -> ('a * 'CCSimple_queue.t) option
  val pop_exn : 'CCSimple_queue.t -> 'a * 'CCSimple_queue.t
  val junk : 'CCSimple_queue.t -> 'CCSimple_queue.t
  val append :
    'CCSimple_queue.t -> 'CCSimple_queue.t -> 'CCSimple_queue.t
  val map : ('-> 'b) -> 'CCSimple_queue.t -> 'CCSimple_queue.t
  val rev : 'CCSimple_queue.t -> 'CCSimple_queue.t
  val equal :
    ('-> '-> bool) -> 'CCSimple_queue.t -> 'CCSimple_queue.t -> bool
  module Infix :
    sig
      val ( >|= ) : 'CCSimple_queue.t -> ('-> 'b) -> 'CCSimple_queue.t
      val ( @ ) :
        'CCSimple_queue.t -> 'CCSimple_queue.t -> 'CCSimple_queue.t
      val ( <:: ) : 'CCSimple_queue.t -> '-> 'CCSimple_queue.t
    end
  val ( >|= ) : 'a t -> ('-> 'b) -> 'b t
  val ( @ ) : 'a t -> 'a t -> 'a t
  val ( <:: ) : 'a t -> '-> 'a t
  val length : 'CCSimple_queue.t -> int
  val fold : ('-> '-> 'b) -> '-> 'CCSimple_queue.t -> 'b
  val iter : ('-> unit) -> 'CCSimple_queue.t -> unit
  val to_list : 'CCSimple_queue.t -> 'a list
  val add_list : 'CCSimple_queue.t -> 'a list -> 'CCSimple_queue.t
  val of_list : 'a list -> 'CCSimple_queue.t
  val to_seq : 'CCSimple_queue.t -> 'CCSimple_queue.sequence
  val add_seq :
    'CCSimple_queue.t -> 'CCSimple_queue.sequence -> 'CCSimple_queue.t
  val of_seq : 'CCSimple_queue.sequence -> 'CCSimple_queue.t
  val to_klist : 'CCSimple_queue.t -> 'CCSimple_queue.klist
  val add_klist :
    'CCSimple_queue.t -> 'CCSimple_queue.klist -> 'CCSimple_queue.t
  val of_klist : 'CCSimple_queue.klist -> 'CCSimple_queue.t
  val of_gen : 'CCSimple_queue.gen -> 'CCSimple_queue.t
  val add_gen :
    'CCSimple_queue.t -> 'CCSimple_queue.gen -> 'CCSimple_queue.t
  val to_gen : 'CCSimple_queue.t -> 'CCSimple_queue.gen
  val pp :
    ?sep:unit CCSimple_queue.printer ->
    'CCSimple_queue.printer -> 'CCSimple_queue.t CCSimple_queue.printer
end