sig
module Slots : Tuple_type.Slots
module Slot : Tuple_type.Slot
type 'slots t
val invariant : 'a Invariant_intf.inv -> 'a t Invariant_intf.inv
val create :
?capacity:int -> ('a, 'b) Slots.t -> ('a, 'b) Slots.t Flat_queue.t
val capacity : 'a Flat_queue.t -> int
val set_capacity : 'a Flat_queue.t -> int -> unit
val length : 'a Flat_queue.t -> int
val is_empty : 'a Flat_queue.t -> bool
val get : ('b, 'v) Slots.t Flat_queue.t -> int -> ('v, 'a) Slot.t -> 'a
val unsafe_get :
('b, 'v) Slots.t Flat_queue.t -> int -> ('v, 'a) Slot.t -> 'a
val set :
('b, 'v) Slots.t Flat_queue.t -> int -> ('v, 'a) Slot.t -> 'a -> unit
val unsafe_set :
('b, 'v) Slots.t Flat_queue.t -> int -> ('v, 'a) Slot.t -> 'a -> unit
val drop_front : ?n:int -> 'a Flat_queue.t -> unit
val clear : 'a Flat_queue.t -> unit
val enqueue1 : 'a0 Slots.t1 Flat_queue.t -> 'a0 -> unit
val enqueue2 : ('a0, 'a1) Slots.t2 Flat_queue.t -> 'a0 -> 'a1 -> unit
val enqueue3 :
('a0, 'a1, 'a2) Slots.t3 Flat_queue.t -> 'a0 -> 'a1 -> 'a2 -> unit
val enqueue4 :
('a0, 'a1, 'a2, 'a3) Slots.t4 Flat_queue.t ->
'a0 -> 'a1 -> 'a2 -> 'a3 -> unit
val enqueue5 :
('a0, 'a1, 'a2, 'a3, 'a4) Slots.t5 Flat_queue.t ->
'a0 -> 'a1 -> 'a2 -> 'a3 -> 'a4 -> unit
val enqueue6 :
('a0, 'a1, 'a2, 'a3, 'a4, 'a5) Slots.t6 Flat_queue.t ->
'a0 -> 'a1 -> 'a2 -> 'a3 -> 'a4 -> 'a5 -> unit
val enqueue7 :
('a0, 'a1, 'a2, 'a3, 'a4, 'a5, 'a6) Slots.t7 Flat_queue.t ->
'a0 -> 'a1 -> 'a2 -> 'a3 -> 'a4 -> 'a5 -> 'a6 -> unit
val enqueue8 :
('a0, 'a1, 'a2, 'a3, 'a4, 'a5, 'a6, 'a7) Slots.t8 Flat_queue.t ->
'a0 -> 'a1 -> 'a2 -> 'a3 -> 'a4 -> 'a5 -> 'a6 -> 'a7 -> unit
val enqueue9 :
('a0, 'a1, 'a2, 'a3, 'a4, 'a5, 'a6, 'a7, 'a8) Slots.t9 Flat_queue.t ->
'a0 -> 'a1 -> 'a2 -> 'a3 -> 'a4 -> 'a5 -> 'a6 -> 'a7 -> 'a8 -> unit
val get_all_slots : ('tuple, 'a) Slots.t Flat_queue.t -> int -> 'tuple
val set_all_slots :
('tuple, 'a) Slots.t Flat_queue.t -> int -> 'tuple -> unit
val fold :
('tuple, 'b) Slots.t Flat_queue.t ->
init:'a -> f:('a -> 'tuple -> 'a) -> 'a
val iter : ('tuple, 'a) Slots.t Flat_queue.t -> f:('tuple -> unit) -> unit
val sexp_of_t :
('slots -> Sexplib.Sexp.t) -> 'slots Flat_queue.t -> Sexplib.Sexp.t
end