// MODULE: lib // FILE: lib.kt package lib interface Stoppable { fun isStopped(): Boolean } interface EventRo : Stoppable interface Event : Stoppable { override fun isStopped(): Boolean { return true } } abstract class EventBase : Event interface MouseEventRo : EventRo open class MouseEvent : EventBase(), MouseEventRo // MODULE: main(lib) // FILE: main.kt package main fun box(): String { if (lib.MouseEvent().isStopped()) { return "OK" } return "Fail" }