code: @SafeVarargs
    public static <T extends Tree> Matcher<T> allOf(final Matcher<? super T>... matchers) {
      return new Matcher<T>() {
        @Override
        public boolean matches(T t, VisitorState state) {
          for (Matcher<? super T> matcher : matchers) {
            if (!matcher.matches(t, state)) {
              return false;
            }
          }
          return true;
        }
      };
    }
docs: Compose several matchers together, such that the composite matches an AST node iff all the
  given matchers do.