I think it's important to address the use cases @benpious pointed out - leveraging accelerators and related libraries for graphics and compute, or even compute on cpu; it seems sensible from that perspective that a tensor, matrix, or vector type dependent on generic integer dimensions would be the most ergonomic approach (e.g. struct FixedArray<n: Int, T>
and friends).
Following from @Erik_Eckstein it does seem like (1), i.e. (n * T)
tuple, makes sense as an isolated feature for clang importing, but it's possible that (2) i.e. "full featured" fixed-size array has multiple features among it depending on use case, and not to mention (3) BufferView has it's own other uses beyond fixed sized arrays.
It sounds like the attempt here is to kill 2+ birds with one stone, does it make sense though to pigeonhole the graphics/compute use case into these solutions or is that hamstringing it and it should be considered separately?
I personally have an affinity towards dimension dependent types, and yet the same question should then be asked about BufferView use cases if the topic's focus was instead in the dependent types direction.