Consistently assert type-equality in `reduced_indices`
This risks making these routines more fragile in cases where
`reduced_index` is broken. However, this can be viewed as a good
thing because it increases the odds that errors will be caught early.
Moreover, it ensures that the return type is inferrable in cases
where the reduction is over the first dimension but constant-propagation
fails to detect this.