public static <A, B> Ord<P2<A, B>> p2Ord1(Ord<A> oa) { return on(P2.<A, B>__1(), oa).ord(); }
public static <A, B> Ord<P2<A, B>> p2Ord2(Ord<B> ob) { return on(P2.<A, B>__2(), ob).ord(); }
/** * An order instance for a product-2, with the first factor considered most significant. * * @param oa An order instance for the first factor. * @param ob An order instance for the second factor. * @return An order instance for a product-2, with the first factor considered most significant. */ public static <A, B> Ord<P2<A, B>> p2Ord(final Ord<A> oa, final Ord<B> ob) { return on(P2.<A, B>__1(), oa).then(P2.__2(), ob).ord(); }
/** * An order instance for a product-3, with the first factor considered most significant. * * @param oa An order instance for the first factor. * @param ob An order instance for the second factor. * @param oc An order instance for the third factor. * @return An order instance for a product-3, with the first factor considered most significant. */ public static <A, B, C> Ord<P3<A, B, C>> p3Ord(final Ord<A> oa, final Ord<B> ob, final Ord<C> oc) { return on(P3.<A, B, C>__1(), oa).then(P3.__2(), ob).then(P3.__3(), oc).ord(); }