The SML Basis Library defines both polymorphic and monomorphic arrays and vectors.
Arrays are mutable sequences, while vectors are immutable.
Both arrays and vectors are indexed from zero, and provide constant time access and update operations. The monomorphic types are expected to have more compact representations than the corresponding polymorphic types. For example, a BoolVector implementation might use one bit per element. A number of the array and vector operations take an array or vector slice as an argument. Note that when NONE is used to specify the length, the number of range checks can be reduced.