pub type Idx<Dim, I = usize> = <Dim as ShapeIdx>::Idx<I>;
type that can be used to index into a range