code: public static <A, B, ERR, RESULT> Or<RESULT, Every<ERR>> withGood(
      Or<? extends A, ? extends Every<? extends ERR>> a,
      Or<? extends B, ? extends Every<? extends ERR>> b,
      BiFunction<? super A, ? super B, ? extends RESULT> function) {
      if (allGood(a, b))
        return Good.of(function.apply(a.get(), b.get()));
      else {
        return getBads(a, b);
      }
    }
docs: Combines two accumulating Or into a single one using the given function.
  The resulting Or will be a Good if both Ors are Goods, otherwise it will
  be a Bad containing every error in the Bads.
  
  @param <A>      the success type of the first Or
  @param <B>      the success type of the second Or
  @param <ERR>    the error type of the Ors
  @param <RESULT> the success type of the resulting Or
  @param a        the first Or to combine
  @param b        the second Or to combine
  @param function the function combining the Ors
  @return a Good if both Ors were Goods, otherwise a Bad with every error.