The way I see it we call `concreteIndices` as soon as we found `indices` (or `index`), and at the same time we could verify if those indices match the current one and store the result, no need to call `matchesIndices` in multiple places.