open class Content() { override fun toString() = "OK" } interface Box { fun get(): E } interface ContentBox : Box object Impl : ContentBox { override fun get(): Content = Content() } class ContentBoxDelegate() : ContentBox by (Impl as ContentBox) fun box() = ContentBoxDelegate().get().toString()