De verdade

Você pode escrever qualquer tipo não apenas como Either[T,U], mas como T Either U
Por exemplo:

def castToInt(s: String): Exception Either Int = {
try {
Right(s.toInt)
} catch {
case nfe: NumberFormatException => Left(nfe)
}
}