Module KTCadequeSource

Sourceval negb : bool -> bool
Sourceval length : 'a1 list -> int
Sourceval app : 'a1 list -> 'a1 list -> 'a1 list
Sourcemodule Nat : sig ... end
Sourceval rev : 'a1 list -> 'a1 list
Sourceval fold_left : ('a1 -> 'a2 -> 'a1) -> 'a2 list -> 'a1 -> 'a1
Sourceval fold_right : ('a2 -> 'a1 -> 'a1) -> 'a1 -> 'a2 list -> 'a1
Sourcetype 'x buffer = 'x list
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
Sourceval stored_seq : 'a1 stored -> 'a1 list
Sourceval cnode_seq : 'a1 cnode -> 'a1 list -> 'a1 list
Sourceval cbody_seq : 'a1 cbody -> 'a1 list -> 'a1 list
Sourceval cpacket_seq : 'a1 cpacket -> 'a1 list -> 'a1 list
Sourceval cchain_seq : 'a1 cchain -> 'a1 list
Sourceval cad_to_list : 'a1 cadeque -> 'a1 list
Sourcetype gyor =
  1. | CG
  2. | CY
  3. | CO
  4. | CR
Sourceval node_color : bool -> 'a1 cnode -> gyor
Sourceval chain_has_node : 'a1 cchain -> bool
Sourceval node_push : 'a1 stored -> 'a1 cnode -> 'a1 cnode
Sourceval node_inject : 'a1 cnode -> 'a1 stored -> 'a1 cnode
Sourceval root_and_child : 'a1 cpacket -> 'a1 cchain -> 'a1 cnode * 'a1 cchain
Sourceval tree_of : 'a1 cnode -> 'a1 cchain -> 'a1 cchain
Sourceval pkt_update : ('a1 cnode -> 'a1 cnode) -> 'a1 cpacket -> 'a1 cchain -> 'a1 cchain
Sourceval push_chain : 'a1 stored -> 'a1 cchain -> 'a1 cchain
Sourceval inject_chain : 'a1 cchain -> 'a1 stored -> 'a1 cchain
Sourceval cad_push : 'a1 -> 'a1 cadeque -> 'a1 cadeque
Sourceval cad_inject : 'a1 cadeque -> 'a1 -> 'a1 cadeque
Sourceval buf_pop2 : 'a1 buffer -> (('a1 * 'a1) * 'a1 buffer) option
Sourceval buf_eject2 : 'a1 buffer -> (('a1 buffer * 'a1) * 'a1) option
Sourceval buf_eject3 : 'a1 buffer -> ((('a1 buffer * 'a1) * 'a1) * 'a1) option
Sourceval degenerate_buf : 'a1 cchain -> 'a1 stored buffer option
Sourceval make_left_only : 'a1 stored buffer -> 'a1 cchain -> 'a1 stored buffer -> 'a1 cchain option
Sourceval make_left : 'a1 cchain -> 'a1 cchain option
Sourceval make_right_only : 'a1 stored buffer -> 'a1 cchain -> 'a1 stored buffer -> 'a1 cchain option
Sourceval make_right : 'a1 cchain -> 'a1 cchain option
Sourceval concat_small_left : 'a1 stored buffer -> 'a1 cchain -> 'a1 cchain option
Sourceval concat_small_right : 'a1 cchain -> 'a1 stored buffer -> 'a1 cchain option
Sourceval cad_concat : 'a1 cadeque -> 'a1 cadeque -> 'a1 cadeque option
Sourceval node_pop : 'a1 cnode -> ('a1 stored * 'a1 cnode) option
Sourceval node_eject : 'a1 cnode -> ('a1 cnode * 'a1 stored) option
Sourceval rebuild_childless : 'a1 cnode -> 'a1 cchain
Sourceval pop_raw : 'a1 cchain -> ('a1 stored * 'a1 cchain) option
Sourceval eject_raw : 'a1 cchain -> ('a1 cchain * 'a1 stored) option
Sourceval repair_front : kind -> 'a1 cbody -> 'a1 stored buffer -> 'a1 stored buffer -> 'a1 cchain -> 'a1 cchain option
Sourceval repair_back : kind -> 'a1 cbody -> 'a1 stored buffer -> 'a1 stored buffer -> 'a1 cchain -> 'a1 cchain option
Sourceval drain_both : 'a1 cchain -> (('a1 stored * 'a1 stored option) * 'a1 cchain) option
Sourceval repair_both : 'a1 cbody -> 'a1 stored buffer -> 'a1 stored buffer -> 'a1 cchain -> 'a1 cchain option
Sourceval repair_packet : 'a1 cpacket -> 'a1 cchain -> 'a1 cchain option
Sourceval repair_pop_side : 'a1 cchain -> 'a1 cchain option
Sourceval repair_eject_side : 'a1 cchain -> 'a1 cchain option
Sourceval cad_pop : 'a1 cadeque -> ('a1 * 'a1 cadeque) option
Sourceval cad_eject : 'a1 cadeque -> ('a1 cadeque * 'a1) option