@Override
 public boolean evaluate(StackFrame frame) {
   for (StackFrameMatcher f : matchers) {
     if (f.evaluate(frame)) {
       return true;
     }
   }
   return false;
 }
 @Override
 public int matchNext(StackFrameList trace, int matchFrom) {
   if (matchFrom > 0) {
     // assume that match have been found already
     return -1;
   }
   for (int i = matchFrom; i < trace.depth(); ++i) {
     if (matcher.evaluate(trace.frameAt(i))) {
       return i;
     }
   }
   return -1;
 }