abstract open class Default { fun defaultValue(): Int } class MyInt() { class object : Default { override fun defaultValue(): Int = 610 } } fun toDefault where class object T: Default(t: T) = T.defaultValue() fun box(): String = if (toDefault(MyInt()) == 610) "OK" else "fail"