iterais Funcionais do Scala com Implícit

Desculpe-me se isso já tiver sido solicitado em outro lugar. Eu tenho uma pergunta de sintaxe Scala envolvendo valores de função e parâmetros implícito

Estou confortável em usar implícitos com o recurso de curry do Scala. Por exemplo, se eu tivesse uma função soma e quisesse tornar o segundo argumento implícito:

scala> def sum(a: Int)(implicit b: Int) = a + b
sum: (a: Int)(implicit b: Int)Int

Existe uma maneira de fazer isso usando a sintaxe do valor da função? Ignorando o implícito por um momento, normalmente escrevo valores de função ao curry assim:

scala> val sum2 = (a: Int) => (b: Int) => a + b
sum: (Int) => (Int) => Int = <function1>

No entanto, a assinatura da função na segunda abordagem é muito diferente (o curry está sendo expresso explicitamente). Apenas adicionar a palavra-chave implícita em b não faz muito sentido, e o compilador também reclama:

scala> val sum2 = (a: Int) => (implicit b: Int) => a + b
<console>:1: error: '=>' expected but ')' found.
       val sum2 = (a: Int) => (implicit b: Int) => a + b
                                              ^

lém disso, a soma da aplicação parcial da primeira abordagem para obter um valor de função também causa problema

scala> val sumFunction = sum _
<console>:14: error: could not find implicit value for parameter b: Int
       val sumFunction = sum _
                         ^

Isso me leva a acreditar que funções que possuem parâmetros implícitos devem ter os referidos parâmetros determinados quando o valor da função é criado, não quando o valor da função é aplicado posteriormente. É este realmente o caso? Você pode usar um parâmetro implícito com um valor de função?

Obrigado pela ajuda

questionAnswers(3)

yourAnswerToTheQuestion