// FILE: 1.kt package anotherpackage interface IInterfaceInput { fun doSomething(input: T) } // FILE: 2.kt package anotherpackage interface IInterfaceOutput { fun doSomething(): T? } // FILE: 3.kt package mypackage.nestedpackage import mypackage.nestedpackage.Bar.Baz import anotherpackage.IInterfaceInput import anotherpackage.IInterfaceOutput class Foo() { class FooNest { val bar = Bar() fun myFun(): List { return listOf(bar.doSomething()) } } } class Bar() : IInterfaceInput, IInterfaceOutput { override fun doSomething(input: Baz) { throw UnsupportedOperationException("not implemented") } override fun doSomething(): Baz { throw UnsupportedOperationException("not implemented") } } data class Baz(val myField: Int)