integrate reversible reduction into follow, some typing improvements