These are immutable type-checking array objects, essentially a combination of
List::Objects::WithUtils::Array::Typed and List::Objects::WithUtils::Array::Immutable.
Type-checking is performed when the object is created; attempts to modify the object will throw an
exception.
This class consumes the following roles, which contain most of the relevant documentation:
List::Objects::WithUtils::Role::Array
List::Objects::WithUtils::Role::Array::WithJunctions
List::Objects::WithUtils::Role::Array::Typed
List::Objects::WithUtils::Role::Array::Immutable