package

package api {

    @api.ExperimentalAPI public final class C {
        public constructor C()
        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 D {
            public constructor D()
            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 E {
                public constructor 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 final class F {
                    public constructor F()
                    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
                }
            }
        }
    }

    @kotlin.RequiresOptIn(level = Level.WARNING) @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.CLASS, AnnotationTarget.FUNCTION}) @kotlin.annotation.Retention(value = AnnotationRetention.BINARY) public final annotation class ExperimentalAPI : kotlin.Annotation {
        public constructor ExperimentalAPI()
        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
    }
}

package usage1 {
    @api.ExperimentalAPI public fun use1(): kotlin.Unit
    @api.ExperimentalAPI public fun use2(/*0*/ f: api.C.D.E.F): kotlin.Int
}

package usage2 {
    @kotlin.OptIn(markerClass = {api.ExperimentalAPI::class}) public fun use1(): kotlin.Unit
    @kotlin.OptIn(markerClass = {api.ExperimentalAPI::class}) public fun use2(/*0*/ f: api.C.D.E.F): kotlin.Int
}

package usage3 {
    public fun use1(): kotlin.Unit
    public fun use2(/*0*/ f: api.C.D.E.F): kotlin.Int
}
