Pode haver uma maneira óbvia de alterar o sinal, se você classificar por algum valor numérico
list.sortBy(- _.size)
De maneira mais geral, a classificação pode ser feita pelo método classificado com um Pedido implícito, que você pode tornar explícito, e o Pedido tem um reverso (não a lista abaixo). Você pode fazer
list.sorted(theOrdering.reverse)
Se a ordem que você deseja reverter for a ordem implícita, você poderá obtê-la implicitamente [Ordering [A]] (A do tipo que você está solicitando) ou melhor Ordering [A]. Isso seria
list.sorted(Ordering[TheType].reverse)
sortBy é como usar Ordering.by, para que você possa
list.sorted(Ordering.by(_.size).reverse)
Talvez não seja o mais curto para escrever (em comparação com menos), mas a intenção é clara
Atualizar
A última linha não funciona. Para aceitar o _in Ordering.by(_.size), o compilador precisa saber em qual tipo estamos solicitando, para que ele possa digitar o _. Pode parecer que esse seria o tipo do elemento da lista, mas não é assim, como é a assinatura da classificação
def sorted[B >: A](ordering: Ordering[B]). A ordem pode estar ativada A, mas também em qualquer ancestral de A(você pode usar byHashCode : Ordering[Any] = Ordering.by(_.hashCode)). E, de fato, o fato de que a lista é covariante força essa assinatura. Pode-se fazer
list.sorted(Ordering.by((_: TheType).size).reverse)
mas isso é muito menos agradável.