sig
  type 'a t
  val make : '-> 'InfiniteArray.t
  val get : 'InfiniteArray.t -> int -> 'a
  val set : 'InfiniteArray.t -> int -> '-> unit
  val extent : 'InfiniteArray.t -> int
  val domain : 'InfiniteArray.t -> 'a array
end