package

package a {

    public open class M {
        public constructor M()
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String

        public open class Inner {
            public constructor Inner(/*0*/ i: kotlin.Int)
            private final var i: kotlin.Int
            public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
            public open fun getI(): kotlin.Int
            public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
            public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
        }
    }
}

package b {
    public fun doSmth(/*0*/ b: a.M.Inner): a.M.Inner
    public fun foo(): kotlin.Unit
}
