// WITH_STDLIB // The test depends on kotlin.jvm package // TARGET_BACKEND: JVM // MODULE: lib // FILE: b.kt package b import a.* public object MstLogicAlgebra1 : LogicAlgebra1 { override fun const(boolean: Boolean): StringSymbol1 = if (boolean) { LogicAlgebra1.TRUE } else { LogicAlgebra1.FALSE } } // FILE: a.kt package a import kotlin.properties.ReadOnlyProperty public interface LogicAlgebra1 { public fun const(boolean: Boolean): T public companion object { public val TRUE: StringSymbol1 by symbol1 public val FALSE: StringSymbol1 by symbol1 } } public val symbol1: ReadOnlyProperty = ReadOnlyProperty { _, property -> StringSymbol1(property.name) } @JvmInline public value class StringSymbol1(public val identity: String) // MODULE: main(lib) // FILE: c.kt import b.* fun box(): String { MstLogicAlgebra1.run { const(true) } return "OK" }