class Foo { implicit def pair2fun2[A, B, C](f: (A, B) => C): ((A, B)) => C = {p: (A, B) => f(p._1, p._2) } def foo(f: ((Int, Int)) => Int) = f def bar(x: Int, y: Int) = x + y foo(((x: Int, y: Int) => x + y)) // works foo(pair2fun2(bar _)) // works foo(bar _) // error foo(bar) // same error }