I've always thought that Scala implicit conversions could only take one argument, and if you needed something like conversion from multiple arguments, you would use a tuple. However, I was surprised to find that Scala 2.10.3 actually accepts this (silly) definition without problem:
scala> implicit def foo(i: Int, j: Int): Int = i
foo: (i: Int, j: Int)Int
Is there any way or reason to use such a multi-argument implicit?
def bar[A, B, C](a: A, b: B)(implicit f: (A, B) => C) = f(a, b), though I don't think it's useful.