Tipo de una función con parámetros implícitos en Scala

Me gustaría tener una función de orden superior que tome en el parámetro una función que acepte un parámetro implícito específico.

Para ser más precisos, estoy tratando de hacer una función que tome unaFuture método de creación que depende de un contexto implícito y devuelve un método que no depende del contexto.

Para ser más concretos, digamos que tengo algo como esto:

def foo(a: Int)(implicit ctx: ExecutionContext): Future[Float] = future { somelongBar... }

Me gustaría tener un método como este:

def provideCtx[A](func: ExecutionContext => A): A = {
     val ctx = setupCtx
     func(ctx)
}

pero si llamoprovideCtx(foo), el compilador se queja de la falta de contexto de ejecución implícita.

El hecho de que estoy tratando con un ExecutionContext no es muy importante. Lo que me gustaría encontrar es cómo escribir el tipo de parámetro para aceptar una función con un argumento implícito de un tipo específico. Entiendo que la parte implícita es un argumento curry, de modo que, de hecho, tengo una función como esta:ExecutionContext => Int => Future[Float], y estoy bastante seguro de que en tiempo de ejecución, el jvm no sabe que ExecutionContext es implícito, pero no puedo hacer que el compilador lo entienda.

Respuestas a la pregunta(1)

Su respuesta a la pregunta