To be useful, I reckon, you need to return a "segment descriptor" as well; i.e., an array with all the extents.

```haskell
FromStream :: (Elt e, Shape sh) => acc aenv [Array sh e] -> PreOpenAcc acc aenv (Array DIM2 Int, Vector e)
```

The first component of the result, in one dimension is as big as the number of arrays in the stream and in the other dimension as big as the dimensionality of the arrays in the stream. As all arrays have the same dimensionality, that 2D array is regular.