## typelocked-expanding-rw-vector.api
# Compiled by:
#
src/lib/std/standard.lib# Api for unbounded Rw_Vectors.
# See also:
src/lib/src/expanding-rw-vector.api### "It becomes plausible that information
### belongs among the great concepts of
### science such as matter, energy and
### electric charge."
###
### -- Norbert Wiener, in 1954
api Typelocked_Expanding_Rw_Vector {
#
Element;
Rw_Vector;
rw_vector: (Int, Element) -> Rw_Vector;
#
# rw_vector (size, e) creates an unbounded rw_vector all of whose elements
# are initialized to e. size (>= 0) is used as a
# hint of the potential range of indices. Raises SIZE if a
# negative hint is given.
copy_rw_subvector: (Rw_Vector, Int, Int) -> Rw_Vector;
#
# sub_array (a, lo, hi) creates a new rw_vector with the same default
# as a, and whose values in the range [0, hi-lo] are equal to
# the values in b in the range [lo, hi].
# Raises SIZE if lo > hi
from_list: (List(Element), Element) -> Rw_Vector;
#
# from_list (l, v) creates an rw_vector using the list of values l
# plus the default value v.
from_fn: (Int, (Int -> Element), Element) -> Rw_Vector;
#
# from_fn (size, fill, default) acts like rw_vector::from_fn, plus
# stores default value default. Raises SIZE if size < 0.
default: Rw_Vector -> Element;
#
# Default returns rw_vector's default value
get: (Rw_Vector, Int) -> Element;
#
# get (a, idx) returns value of the rw_vector at index idx.
# If that value has not been set by update, it returns the default value.
# Raises INDEX_OUT_OF_BOUNDS if idx < 0
set: (Rw_Vector, Int, Element) -> Void;
#
# update (a, idx, v) sets the value at index idx of the rw_vector to v.
# Raises INDEX_OUT_OF_BOUNDS if idx < 0
bound: Rw_Vector -> Int;
#
# bound returns an upper bound on the index of values that have been
# changed.
truncate: (Rw_Vector, Int) -> Void;
#
# truncate (a, size) makes every entry with index > size the default value
# * what about iterators??? * XXX BUGGO FIXME
}; # MONO_DYNAMIC_ARRAY
## COPYRIGHT (c) 1993 by AT&T Bell Laboratories. See SMLNJ-COPYRIGHT file for details.
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.