Tower Data Context:
    Element 0
        Scope: FirDefaultStarImportingScope
    Element 1
        Scope: FirExplicitStarImportingScope
    Element 2
        Scope: FirDefaultSimpleImportingScope
    Element 3
        Scope: FirDefaultSimpleImportingScope
    Element 4
        Scope: FirPackageMemberScope
    Element 5
        Scope: FirExplicitSimpleImportingScope
    Element 6
        Scope: FirMemberTypeParameterScope
            Classifiers:
                FirTypeParameterSymbol T1
    Element 7
        Implicit receiver:
            FirRegularClassSymbol context(R|A|)
            public final class TopLevel<T1> : R|kotlin/Any|
                Type: TopLevel<T1>
    Element 8
        Context receivers:
            FirValueParameterSymbol R|A|
                Type: A
                Label: A
    Element 9
        Scope: FirMemberTypeParameterScope
            Classifiers:
                FirTypeParameterSymbol T2
    Element 10
        Scope: FirLocalScope
            Properties:
                FirValueParameterSymbol param: R|kotlin/Int| = context(this@R|context of /TopLevel|, this@R|context of /TopLevel.foo|, this@R|/TopLevel.foo|) R|/usage|()
                FirValueParameterSymbol param2: R|kotlin/String|
    Element 11
        Context receivers:
            FirValueParameterSymbol R|B|
                Type: B
                Label: B
    Element 12
        Implicit receiver:
            FirReceiverParameterSymbol <explicit receiver parameter>: R|C|
                Type: C

FILE: [ResolvedTo(IMPORTS)] functionValueParameterWithContextReceiverWithDefaultValue.kt
    public final [ResolvedTo(STATUS)] class A : R|kotlin/Any| {
        public [ResolvedTo(STATUS)] constructor(): R|A| {
            LAZY_super<R|kotlin/Any|>
        }

    }
    public final [ResolvedTo(STATUS)] class B : R|kotlin/Any| {
        public [ResolvedTo(STATUS)] constructor(): R|B| {
            LAZY_super<R|kotlin/Any|>
        }

    }
    public final [ResolvedTo(STATUS)] class C : R|kotlin/Any| {
        public [ResolvedTo(STATUS)] constructor(): R|C| {
            LAZY_super<R|kotlin/Any|>
        }

    }
    context([ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] R|A|, [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] R|B|, [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] R|C|)
    public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun usage(): R|kotlin/Int| {
        ^usage Int(0)
    }
    context([ResolvedTo(STATUS)] R|A|)
    public final [ResolvedTo(STATUS)] class TopLevel<[ResolvedTo(STATUS)] T1> : R|kotlin/Any| {
        context([ResolvedTo(STATUS)] R|A|)
        public [ResolvedTo(STATUS)] constructor<[ResolvedTo(STATUS)] T1>(): R|TopLevel<T1>| {
            LAZY_super<R|kotlin/Any|>
        }

        context([ResolvedTo(BODY_RESOLVE)] R|B|)
        public final [ResolvedTo(BODY_RESOLVE)] fun <[ResolvedTo(BODY_RESOLVE)] T2> [ResolvedTo(BODY_RESOLVE)] R|C|.foo([ResolvedTo(BODY_RESOLVE)] param: R|kotlin/Int| = context(this@R|context of /TopLevel|, this@R|context of /TopLevel.foo|, this@R|/TopLevel.foo|) R|/usage|(), [ResolvedTo(BODY_RESOLVE)] param2: R|kotlin/String|): R|kotlin/Unit| {
        }

    }