This is because you do not have an implicit Int. Cm:
scala> def foo(x: Int)(implicit y: Int) = x + y foo: (x: Int)(implicit y: Int)Int scala> foo _ <console>:9: error: could not find implicit value for parameter y: Int foo _ ^ scala> implicit val b = 2 b: Int = 2 scala> foo _ res1: Int => Int = <function1>
The implicit result is replaced by the real value by the compiler. If you feed a method, the result is a function, and functions cannot have implicit parameters, so the compiler must insert the value at the moment you feed the method.
edit:
For your use case, why don't you try something like:
object Foo { def partialSum(implicit x: Int) = sum(3)(x) }
drexin
source share