We have today, from spec:type system,
type EmptyArray = [];
type AnyElemArray = [*];
type ZeroOrMoreInts = [int];
type OneOrMoreInts = [int, int];
The last element type repeats until index 232-2. And the last element is optional.
Note also that in the current proposal, the first two types are equivalent (and the first is misnamed).
I think it would be better if repetition (including zero times) were explicit:
type EmptyArray = [];
type AnyElemArray = [*];
type ZeroOrMoreInts = [int...];
type OneOrMoreInts = [int, int...];
where I'm using ... for Kleene * without actually proposing it as the concrete syntax. Whatever the syntax, the point is that array structural types would not need a bounds proposal or a () element type to stop implied repetition of the last element type
Ignoring questions of concrete syntax, this ticket asks for explicit rather than implicit repetition zero-or-more times for the last element type.
/be