1 2 3 4 5
abstract class A { def foo(a: Int): A } class B extends A { implicit def spackle(x: Int): A = new B def foo(a) = a }