Во второй версии вы объявляете карри первичного конструктора для Clazz.Таким образом, разница между этими двумя версиями такая же, как разница между «обычными» и карри функциями в Scala, т.е.
def foo(param1: String, param2: Int)
def foo(param1: String)(param2: Int)
Большую часть времени оба объявления могут использоваться взаимозаменяемо, но если вам часто требуется функция карритогда имеет смысл объявить это в форме карри.Обратите внимание, что вы также можете преобразовать обычную функцию или даже конструктор в форму с карри, например, вы можете преобразовать ваш обычный конструктор Clazz в форму с карри, используя это:
(new Clazz(_, _)).curried
Вам также нужно несколько списков параметров, если вы передаетенеявное значение (поскольку ключевое слово implicit относится ко всему списку параметров)