class Baz extends Inter {
  def foo(x: Int) = x + 1
}

object Test {
  def main(args: Array[String]): Unit = {
    // it's important that the type is Inter so we do not call Baz.foo(I)I directly!
    val baz: Inter = new Baz
    // here we should go through specialized version of foo and thus have zero boxing
    baz.foo(1)
    println(runtime.BoxesRunTime.integerBoxCount)
  }
}
