package

public val seeAlsoDerivedFoo: kotlin.String
public val seeAlsoFoo: kotlin.String
public val testDerivedFoo: kotlin.String
public val testFoo: kotlin.String
public val testInner1: [ERROR : JT.Inner]
public val testInner2: [ERROR : KT.Inner]
public val testNested1: [ERROR : JT.Nested]
public val testNested2: [ERROR : KT.Nested]
public val testNested3: [ERROR : IT.Nested]
public fun testInnerAsTypeArgument1(/*0*/ x: kotlin.collections.List<[ERROR : JT.Inner]>): kotlin.Unit
public fun testInnerAsTypeArgument2(/*0*/ x: kotlin.collections.List<[ERROR : KT.Inner]>): kotlin.Unit
public fun testNestedAsTypeArgument1(/*0*/ x: kotlin.collections.List<[ERROR : JT.Nested]>): kotlin.Unit
public fun testNestedAsTypeArgument2(/*0*/ x: kotlin.collections.List<[ERROR : KT.Nested]>): kotlin.Unit
public fun testNestedAsTypeArgument3(/*0*/ x: kotlin.collections.List<[ERROR : IT.Nested]>): kotlin.Unit

public interface ITest {
    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 final class Nested {
        public constructor Nested()
        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 JDerived : JTest {
    public constructor JDerived()
    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

    // Static members
    public open override /*1*/ /*fake_override*/ fun foo(): kotlin.String!
}

public open class JTest {
    public constructor JTest()
    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 Nested {
        public constructor Nested()
        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
    }

    // Static members
    public open fun foo(): kotlin.String!
}

public final class KTest {
    public constructor KTest()
    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 final inner class Inner {
        public constructor Inner()
        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 final class Nested {
        public constructor Nested()
        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 typealias IT = ITest
public typealias JD = JDerived
public typealias JT = JTest
public typealias KT = KTest
