docs: public static final <A,B> Set<OrderedPair<A,B>> cartesianProduct(Set<A> a, Set<B> b)
      {
          Set<OrderedPair<A,B>> set = new HashSet<>();
          for (A t : a)
          {
              for (B v : b)
              {
                  set.add(new OrderedPair(t, v));
              }
          }
          return set;
      }