module InfiniteArray:sig
..end
type 'a
t
This module implements infinite arrays. *
val make : 'a -> 'a t
make x
creates an infinite array, where every slot contains x
. *
val get : 'a t -> int -> 'a
get a i
returns the element contained at offset i
in the array a
.
Slots are numbered 0 and up. *
val set : 'a t -> int -> 'a -> unit
set a i x
sets the element contained at offset i
in the array
a
to x
. Slots are numbered 0 and up. *
val extent : 'a t -> int
extent a
is the length of an initial segment of the array a
that is sufficiently large to contain all set
operations ever
performed. In other words, all elements beyond that segment have
the default value.
val domain : 'a t -> 'a array
domain a
is a fresh copy of an initial segment of the array a
whose length is extent a
.