protected Test findResidueInternal(Shadow shadow, ExposedState state) {
   return Test.makeAnd(left.findResidue(shadow, state), right.findResidue(shadow, state));
 }
 public boolean matches() {
   test.accept(this);
   return matches;
 }