Module KTCadequeFastSource

Sourceval negb : bool -> bool
Sourcemodule Nat : sig ... end
Sourcetype 'x buffer = 'x Fastbuf.t
Sourcetype kind =
  1. | KOnly
  2. | KLeft
  3. | KRight
Sourcetype 'a stored =
  1. | SGround of 'a
  2. | SSmall of 'a stored buffer
  3. | SBig of 'a stored buffer * 'a cchain * 'a stored buffer
Sourceand 'a cnode =
  1. | Node of kind * 'a stored buffer * 'a stored buffer
Sourceand 'a cbody =
  1. | BHole
  2. | BSingle of 'a cnode * 'a cbody
  3. | BPairY of 'a cnode * 'a cbody * 'a cchain
  4. | BPairO of 'a cnode * 'a cchain * 'a cbody
Sourceand 'a cpacket =
  1. | Pkt of 'a cbody * 'a cnode
Sourceand 'a cchain =
  1. | CEmpty
  2. | CSingle of 'a cpacket * 'a cchain
  3. | CPair of 'a cchain * 'a cchain
Sourcetype 'a cadeque = 'a cchain
Sourceval cad_empty : 'a1 cadeque
Sourcetype gyor =
  1. | CG
  2. | CY
  3. | CO
  4. | CR
Sourceval chain_has_node : 'a1 cchain -> bool
Sourceval bempty : 'a1 buffer
Sourceval b1 : 'a1 -> 'a1 buffer
Sourceval b2 : 'a1 -> 'a1 -> 'a1 buffer
Sourceval b3 : 'a1 -> 'a1 -> 'a1 -> 'a1 buffer
Sourceval bpush : 'a1 -> 'a1 buffer -> 'a1 buffer
Sourceval binject : 'a1 buffer -> 'a1 -> 'a1 buffer
Sourceval bpop : 'a1 buffer -> ('a1 * 'a1 buffer) option
Sourceval beject : 'a1 buffer -> ('a1 buffer * 'a1) option
Sourceval bsize : 'a1 buffer -> int
Sourceval bis_empty : 'a1 buffer -> bool
Sourceval bapp : 'a1 buffer -> 'a1 buffer -> 'a1 buffer
Sourceval bpop2 : 'a1 buffer -> (('a1 * 'a1) * 'a1 buffer) option
Sourceval beject2 : 'a1 buffer -> (('a1 buffer * 'a1) * 'a1) option
Sourceval beject3 : 'a1 buffer -> ((('a1 buffer * 'a1) * 'a1) * 'a1) option
Sourceval bfold_right : ('a1 -> 'a2 -> 'a2) -> 'a2 -> 'a1 buffer -> 'a2
Sourceval bfold_left : ('a2 -> 'a1 -> 'a2) -> 'a1 buffer -> 'a2 -> 'a2
Sourceval push_chain_f : 'a1 stored -> 'a1 cchain -> 'a1 cchain
Sourceval inject_chain_f : 'a1 cchain -> 'a1 stored -> 'a1 cchain
Sourceval degenerate_buf_f : 'a1 cchain -> 'a1 stored buffer option
Sourceval make_left_only_f : 'a1 stored buffer -> 'a1 cchain -> 'a1 stored buffer -> 'a1 cchain option
Sourceval make_left_f : 'a1 cchain -> 'a1 cchain option
Sourceval make_right_only_f : 'a1 stored buffer -> 'a1 cchain -> 'a1 stored buffer -> 'a1 cchain option
Sourceval make_right_f : 'a1 cchain -> 'a1 cchain option
Sourceval concat_small_left_f : 'a1 stored buffer -> 'a1 cchain -> 'a1 cchain option
Sourceval concat_small_right_f : 'a1 cchain -> 'a1 stored buffer -> 'a1 cchain option
Sourceval cad_concat_f : 'a1 cadeque -> 'a1 cadeque -> 'a1 cadeque option
Sourceval pop_raw_f : 'a1 cchain -> ('a1 stored * 'a1 cchain) option
Sourceval eject_raw_f : 'a1 cchain -> ('a1 cchain * 'a1 stored) option
Sourceval repair_front_f : kind -> 'a1 cbody -> 'a1 stored buffer -> 'a1 stored buffer -> 'a1 cchain -> 'a1 cchain option
Sourceval repair_back_f : kind -> 'a1 cbody -> 'a1 stored buffer -> 'a1 stored buffer -> 'a1 cchain -> 'a1 cchain option
Sourceval drain_both_f : 'a1 cchain -> (('a1 stored * 'a1 stored option) * 'a1 cchain) option
Sourceval repair_both_f : 'a1 cbody -> 'a1 stored buffer -> 'a1 stored buffer -> 'a1 cchain -> 'a1 cchain option
Sourceval repair_packet_f : 'a1 cpacket -> 'a1 cchain -> 'a1 cchain option
Sourceval repair_pop_side_f : 'a1 cchain -> 'a1 cchain option
Sourceval repair_eject_side_f : 'a1 cchain -> 'a1 cchain option
Sourceval push_chain_v2 : 'a1 stored -> 'a1 cchain -> 'a1 cchain
Sourceval inject_chain_v2 : 'a1 cchain -> 'a1 stored -> 'a1 cchain
Sourceval cad_push_v2 : 'a1 -> 'a1 cadeque -> 'a1 cadeque
Sourceval cad_inject_v2 : 'a1 cadeque -> 'a1 -> 'a1 cadeque
Sourceval cad_pop_v2 : 'a1 cadeque -> ('a1 * 'a1 cadeque) option
Sourceval cad_eject_v2 : 'a1 cadeque -> ('a1 cadeque * 'a1) option