The type of an array that is not displaced to another array, has no fill pointer, and is not expressly adjustable is a subtype of simple-array. The concept of a simple array exists to allow the implementation to use a specialized representation and to allow the user to declare that certain values will always be simple arrays.
The types simple-vector, simple-string, and simple-bit-vector are disjoint subtypes of simple-array, for they respectively mean
(simple-array t (*)), the union of all
(simple-array c (*)) for any
c being a subtype of character, and
(simple-array bit (*)).
(simple-array *) refers to all simple arrays regardless of element type,
(simple-array type-specifier) refers only to those simple arrays that can result from giving type-specifier as the
:element-type argument to make-array.