interface Some object O1 : Some object O2 : Some enum class SomeEnum(x: Some) { FIRST { override fun check(y: Some): Boolean }, SECOND { override fun check(y: Some): Boolean }; abstract fun check(y: Some): Boolean val x: Some }