Note that `delete_if` and `keep_if` modify the object in-place—they don't return a new instance. Hence, they worked fine before, since permitted status was preserved.

The brokenness is from methods that return new instances only. HWIA has had to deal with this situation... extensively.