FILE: explicitBackingFieldType.kt
    public final class A : R|kotlin/Any| {
        public constructor(c: R|Inv<out kotlin/Number>|): R|A| {
            super<R|kotlin/Any|>()
        }

        public final val a: R|kotlin/Int| = Int(20)
            public get(): R|kotlin/Int|

        public final val it: R|kotlin/Number|
            private final backing field field: R|kotlin/Int| = Int(4)
            public get(): R|kotlin/Number|

        public final val joke: R|kotlin/Number|
            private final backing field field: R|kotlin/String| = String(Haha)
            public get(): R|kotlin/Number|

        public final val incompatible: R|kotlin/Number|
            private final backing field field: R|kotlin/Any?| = Int(42)
            public get(): R|kotlin/Number|

        public final val customGetterNeeded: R|kotlin/Int|
            private final backing field field: R|kotlin/Number| = Int(42)
            public get(): R|kotlin/Int|

        public final val invertedTypes: R|kotlin/Int|
            private final backing field field: R|kotlin/Number| = Int(42)
            public get(): R|kotlin/Int| {
                ^ Int(30)
            }

        public final val uninitialized: R|kotlin/Number|
            private final backing field field: R|kotlin/Int|
            public get(): R|kotlin/Number|

        public final val uninitializedWithGetter: R|kotlin/Number|
            private final backing field field: R|kotlin/Int|
            public get(): R|kotlin/Number| {
                ^ Int(2)
            }

        public final val initiaizedWithExplicitBackingField: R|kotlin/collections/List<kotlin/Int>| = R|kotlin/collections/listOf|<R|kotlin/Int|>(vararg(Int(1), Int(2)))
            private final backing field field: R|kotlin/collections/MutableList<kotlin/Int>|
            public get(): R|kotlin/collections/List<kotlin/Int>|

        public final val p: R|kotlin/Int| = Int(5)
            public get(): R|kotlin/Int| {
                ^ this@R|/A|.F|/A.p|
            }

        public final var setterNeeded: R|kotlin/Int|
            private final backing field field: R|kotlin/String| = String(test)
            public get(): R|kotlin/Int| {
                ^ this@R|/A|.F|/A.setterNeeded|.R|kotlin/String.length|
            }
            public set(value: R|kotlin/Int|): R|kotlin/Unit|

        public final val anonymousType: R|kotlin/Any|
            private final backing field field: R|<anonymous>| = object : R|kotlin/Any| {
                private constructor(): R|<anonymous>| {
                    super<R|kotlin/Any|>()
                }

                public final val x: R|kotlin/Int| = Int(1)
                    public get(): R|kotlin/Int|

            }

            public get(): R|kotlin/Any|

        public final val capturedType: R|kotlin/Number?|
            private final backing field field: R|kotlin/Number| = R|<local>/c|.R|SubstitutionOverride</Inv.x: R|CapturedType(out kotlin/Number)|>|
            public get(): R|kotlin/Number?|

    }
    public final class Inv<T> : R|kotlin/Any| {
        public constructor<T>(x: R|T|): R|Inv<T>| {
            super<R|kotlin/Any|>()
        }

        public final val x: R|T| = R|<local>/x|
            public get(): R|T|

    }
