FILE: problems2.kt public final class Interner : R|kotlin/Any| { public constructor(): R|Interner| { super() } private final fun find(obj: R|T|): R|kotlin/Int?| { ^find Null(null) } public final fun intern(obj: R|T|): R|kotlin/Int?| { ^intern this@R|/Interner|.R|/Interner.find|(R|/obj|) } } public final class Externer : R|kotlin/Any| { public constructor(): R|Externer| { super() } private final fun find(obj: R|kotlin/Int|): R|kotlin/Int?| { ^find Null(null) } public final fun intern(obj: R|kotlin/Int|): R|kotlin/Int?| { ^intern this@R|/Externer|.R|/Externer.find|(R|/obj|) } } public abstract interface Some : R|kotlin/Any| { public final data class WithPrimary : R|kotlin/Any| { public constructor(x: R|kotlin/Int|, arr: R|kotlin/Array?| = Null(null), s: R|kotlin/String?| = Null(null)): R|Some.WithPrimary| { super() } public final val x: R|kotlin/Int| = R|/x| public get(): R|kotlin/Int| public final val arr: R|kotlin/Array?| = R|/arr| public get(): R|kotlin/Array?| public final val s: R|kotlin/String?| = R|/s| public get(): R|kotlin/String?| public final operator fun component1(): R|kotlin/Int| public final operator fun component2(): R|kotlin/Array?| public final operator fun component3(): R|kotlin/String?| public final fun copy(x: R|kotlin/Int| = this@R|/Some.WithPrimary|.R|/Some.WithPrimary.x|, arr: R|kotlin/Array?| = this@R|/Some.WithPrimary|.R|/Some.WithPrimary.arr|, s: R|kotlin/String?| = this@R|/Some.WithPrimary|.R|/Some.WithPrimary.s|): R|Some.WithPrimary| } } public final fun test(): R|kotlin/Unit| { Q|Some|.R|/Some.WithPrimary.WithPrimary|(Int(42), R|kotlin/arrayOf|(vararg(String(alpha), String(omega)))) } public final class KonanTarget : R|kotlin/Any| { public constructor(name: R|kotlin/String|): R|KonanTarget| { super() } public final val name: R|kotlin/String| = R|/name| public get(): R|kotlin/String| } public final val R|KonanTarget|.presetName: R|kotlin/String| public get(): R|kotlin/String| { ^ this@R|/presetName|.R|/KonanTarget.name| }