##file app.scala## package test.app import test.implicitObject class implClass( s: String ) extends implicitObject( s ) { import test.implicitObject def getString = "world!" def t = implicitObject.implicitTest( getString ) } object app extends Application { val x = new implClass( "hello" ) x.t } ##----------------------## ##file test.scala## package test object implicitObject { protected[test] def implicitTest(s: String)(implicit is: String) = Console.print( is + " " + s + "\n" ) } abstract class implicitObject( s: String ) { implicit val implicitString = s def getString: String } ##----------------------## scalac test.scala app.scala ----> compiler-crash!