Order<A> andThen(Order<A> secondary) => new _AnonymousOrder((a1, a2) { final Ordering primary = order(a1, a2); return (primary == Ordering.EQ) ? secondary.order(a1, a2) : primary; });