generalizing RedAll so idred is parameterized by a partial reducer