sig
  type 'a t
  val make : 'a -> 'a InfiniteArray.t
  val get : 'a InfiniteArray.t -> int -> 'a
  val set : 'a InfiniteArray.t -> int -> 'a -> unit
  val iteri : (int -> 'a -> unit) -> 'a InfiniteArray.t -> unit
end