Module Make.FallbackArray

This module implements arrays equipped with accessors that cannot raise exceptions. Reading out of the bounds of the arrays return a fallback value fixed at array construction time, writing out of the bounds of the arrays is ignored.

type 'a t

The type for array containing values of type 'a.

val make : int -> 'a -> 'a t

make len v builds an array a initialized len cells with v. The value v is the fallback value for a.

val fallback : 'a t -> 'a

fallback a returns the fallback value for a.

val length : 'a t -> int

length a returns the length of a.

val get : 'a t -> int -> 'a

get a idx returns the contents of the cell of index idx in a. If idx < 0 or idx >= length a, get a idx = fallback a.

val set : 'a t -> int -> 'a -> unit

set a idx value updates the cell of index idx with value. If idx < 0 or idx >= length a, a is unchanged.

val iter : ('a -> unit) -> 'a t -> unit

iter f a iterates f over the cells of a from the cell indexed 0 to the cell indexed length a - 1.

val map : ('a -> 'b) -> 'a t -> 'b t

map f a computes a new array obtained by applying f to each cell contents of a. Notice that the fallback value of the new array is f (fallback a).

val fold : ('b -> 'a -> 'b) -> 'a t -> 'b -> 'b

fold a init f traverses a from the cell indexed 0 to the cell indexed length a - 1 and transforms accu into f accu x where x is the content of the cell under focus. accu is init on the first iteration.