docs: @SafeVarargs
    public static <T> Result<T> match(DefaultCase<T> defaultCase , Case<T>... matchers) {
      return Stream
          .of(matchers)
          .filter(Case::isMatching)
          .map(Case::result)
          .findFirst()
          .orElseGet(defaultCase::result);
    }