package

package exp {
    public val exp.Ns.Foo<*>.name: kotlin.String!

    public final class Ns {
        public constructor Ns()
        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 Bar</*0*/ U : exp.Ns.Element<U!>!> {
            public constructor Bar</*0*/ U : exp.Ns.Element<U!>!>()
            public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
            public open fun getName(): kotlin.String!
            public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
            public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
        }

        public open class Element</*0*/ E : exp.Ns.Element<E!>!> {
            public constructor Element</*0*/ E : exp.Ns.Element<E!>!>()
            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 Foo</*0*/ T : exp.Ns.Element<T!>!> {
            public constructor Foo</*0*/ T : exp.Ns.Element<T!>!>()
            public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
            public open fun getBar(): exp.Ns.Bar<T!>!
            public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
            public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
        }
    }
}
