


## typelocked-rw-vector.api
# Compiled by:
# src/lib/std/src/standard-core.sublib# Generic interface for typelocked rw_vector packages.
### "My own suspicion is that the universe is
### not only queerer than we suppose,
### but queerer than we can suppose."
###
### -- J. B. S. Haldane
api Typelocked_Rw_Vector {
#
eqtype Rw_Vector;
Element;
Vector;
max_len: Int;
# rw_vector creation functions
make_rw_vector: (Int, Element) -> Rw_Vector;
from_list: List( Element ) -> Rw_Vector;
tabulate: (Int, (Int -> Element)) -> Rw_Vector;
# Note: The (_[]) enables 'vec[index]' notation;
# The (_[]:=) enables 'vec[index] := value' notation;
length: Rw_Vector -> Int;
get: (Rw_Vector, Int) -> Element;
(_[]): (Rw_Vector, Int) -> Element;
set: (Rw_Vector, Int, Element) -> Void;
(_[]:=): (Rw_Vector, Int, Element) -> Void;
to_vector: Rw_Vector -> Vector;
copy: { from: Rw_Vector, to: Rw_Vector, di: Int } -> Void;
copy_vec: { from: Vector, to: Rw_Vector, di: Int } -> Void;
keyed_apply: ((Int, Element) -> Void) -> Rw_Vector -> Void;
apply: (Element -> Void) -> Rw_Vector -> Void;
modifyi: ((Int, Element) -> Element) -> Rw_Vector -> Void;
modify: (Element -> Element) -> Rw_Vector -> Void;
keyed_fold_left: ((Int, Element, X) -> X) -> X -> Rw_Vector -> X;
keyed_fold_right: ((Int, Element, X) -> X) -> X -> Rw_Vector -> X;
fold_left: ((Element, X) -> X) -> X -> Rw_Vector -> X;
fold_right: ((Element, X) -> X) -> X -> Rw_Vector -> X;
findi: ((Int, Element) -> Bool) -> Rw_Vector -> Null_Or ((Int, Element));
find: (Element -> Bool) -> Rw_Vector -> Null_Or( Element );
exists: (Element -> Bool) -> Rw_Vector -> Bool;
all: (Element -> Bool) -> Rw_Vector -> Bool;
collate: ((Element, Element) -> Order) -> (Rw_Vector, Rw_Vector) -> Order;
};
## COPYRIGHT (c) 1994 AT&T Bell Laboratories.
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2012,
## released under Gnu Public Licence version 3.


