sig
  module Slots : Tuple_type.Slots
  module Slot : Tuple_type.Slot
  type 'slots t
  val invariant : 'Core.Std.Invariant.inv -> 'a t Core.Std.Invariant.inv
  val create :
    ('tuple, 'a) Slots.t -> len:int -> 'tuple -> ('tuple, 'a) Slots.t t
  val length : 'a t -> int
  val get : ('b, 'v) Slots.t t -> int -> ('v, 'a) Slot.t -> 'a
  val unsafe_get : ('b, 'v) Slots.t t -> int -> ('v, 'a) Slot.t -> 'a
  val set : ('b, 'v) Slots.t t -> int -> ('v, 'a) Slot.t -> '-> unit
  val unsafe_set : ('b, 'v) Slots.t t -> int -> ('v, 'a) Slot.t -> '-> unit
  val get_tuple : ('tuple, 'a) Slots.t t -> int -> 'tuple
  val sexp_of_t : ('slots -> Sexplib.Sexp.t) -> 'slots t -> Sexplib.Sexp.t
end