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