It could be useful to have checkers that verify that each pass accomplishes its purpose. Say a checker for uniquify could test that after the pass runs, there is no variable shadowing. At the moment there is only a check that "before" and "after" produces the same output when evaluated.