Dos formas de curry en Scala; ¿Cuál es el caso de uso de cada uno?

Estoy teniendo una discusión alrededorListas de parámetros múltiples en la Guía de estilo Scala que mantengo. Me he dado cuenta de que hay dos formas dezurra, y me pregunto cuáles son los casos de uso:

def add(a:Int)(b:Int) = {a + b}
// Works
add(5)(6)
// Doesn't compile
val f = add(5)
// Works
val f = add(5)_
f(10) // yields 15

def add2(a:Int) = { b:Int => a + b }
// Works
add2(5)(6)
// Also works
val f = add2(5)
f(10) // Yields 15
// Doesn't compile
val f = add2(5)_

La guía de estilo implica incorrectamente que son iguales, cuando claramente no lo son. La guía está tratando de hacer un punto sobre las funciones currificadas creadas, y, aunque la segunda forma no es curry "por libro", sigue siendo muy similar a la primera forma (aunque podría decirse que es más fácil de usar porque no necesita el_)

De aquellos que usan estos formularios, ¿cuál es el consenso sobre cuándo usar un formulario sobre el otro?

Respuestas a la pregunta(3)

Su respuesta a la pregunta