docs: static Matcher flattenNestedOr(Matcher matcher) {
      if (matcher instanceof OrMatcher) {
        List<Matcher> matchers = matcher.<OrMatcher>as().matchers();
        List<Matcher> ms = new ArrayList<>();
        for (Matcher m : matchers) {
          if (m instanceof OrMatcher) {
            ms.addAll(m.<OrMatcher>as().matchers());
          } else {
            ms.add(m);
          }
        }
        return OrMatcher.create(ms);
      }
      return matcher;
    }