typealias Some = Function1 object Factory { private constructor() /* primary */ { super/*Any*/() /* () */ } fun foo(a: String): String { return "Alpha" } fun foo(a: String, f: Function1): String { return "Omega" } } interface Base { } interface Delegate : Base { abstract fun bar() } interface Derived : Delegate { } data class DataClass : Derived, Delegate { constructor(delegate: Delegate) /* primary */ { super/*Any*/() /* () */ } val delegate: Delegate field = delegate get override fun bar() { .#delegate.bar() } operator fun component1(): Delegate { return .#delegate } fun copy(delegate: Delegate = .#delegate): DataClass { return DataClass(delegate = delegate) } override fun toString(): String { return "DataClass(" + "delegate=" + .#delegate + ")" } override fun hashCode(): Int { return .#delegate.hashCode() } override operator fun equals(other: Any?): Boolean { when { EQEQEQ(arg0 = , arg1 = other) -> return true } when { other !is DataClass -> return false } val tmp0_other_with_cast: DataClass = other as DataClass when { EQEQ(arg0 = .#delegate, arg1 = tmp0_other_with_cast.#delegate).not() -> return false } return true } }