Cómo dividir una lista [Ya sea [A, B]]

Quiero dividir unList[Either[A, B]] en dos listas

¿Hay una mejor manera?

def lefts[A, B](eithers : List[Either[A, B]]) : List[A] = eithers.collect { case Left(l) => l}
def rights[A, B](eithers : List[Either[A, B]]) : List[B] = eithers.collect { case Right(r) => r}