package test

public open class ReferenceCycleThroughAnnotation {
    public constructor ReferenceCycleThroughAnnotation()

    @test.ReferenceCycleThroughAnnotation.C(value = test.ReferenceCycleThroughAnnotation.B::class) public open inner class A</*0*/ T : kotlin.Any!> {
        public constructor A</*0*/ T : kotlin.Any!>()
        public open fun foo(): kotlin.Unit
    }

    public open inner class B</*0*/ T : test.ReferenceCycleThroughAnnotation.A<T!>!> {
        public constructor B</*0*/ T : test.ReferenceCycleThroughAnnotation.A<T!>!>()
    }

    @kotlin.annotation.Retention(value = ...) public final annotation class C : kotlin.Annotation {
        public final val value: kotlin.reflect.KClass<*>
            public final fun `<get-value>`(): kotlin.reflect.KClass<*>
    }
}
