expression: a
KtType: Outer<kotlin.String>.A<kotlin.Int>

KtTypeScope:
KtFunctionLikeSignature:
  receiverType = null
  returnType = kotlin.collections.Map<kotlin.Int, kotlin.collections.Map<Y, kotlin.String>>
  symbol = /Outer.A.foo(<dispatch receiver>: Outer.A<X, O>, x: X, y: Y): kotlin.collections.Map<X, kotlin.collections.Map<Y, O>>
  valueParameters = [
    KtVariableLikeSignature:
      name = x
      receiverType = null
      returnType = kotlin.Int
      symbol = x: X
      callableIdIfNonLocal = null,
    KtVariableLikeSignature:
      name = y
      receiverType = null
      returnType = Y
      symbol = y: Y
      callableIdIfNonLocal = null
  ]
  callableIdIfNonLocal = /Outer.A.foo
KtVariableLikeSignature:
  name = map
  receiverType = null
  returnType = kotlin.collections.Map<kotlin.Int, kotlin.String>
  symbol = val map: kotlin.collections.Map<X, O>
  callableIdIfNonLocal = /Outer.A.map
KtFunctionLikeSignature:
  receiverType = null
  returnType = kotlin.Boolean
  symbol = kotlin/Any.equals(<dispatch receiver>: kotlin.Any, other: kotlin.Any?): kotlin.Boolean
  valueParameters = [
    KtVariableLikeSignature:
      name = other
      receiverType = null
      returnType = kotlin.Any?
      symbol = other: kotlin.Any?
      callableIdIfNonLocal = null
  ]
  callableIdIfNonLocal = kotlin/Any.equals
KtFunctionLikeSignature:
  receiverType = null
  returnType = kotlin.Int
  symbol = kotlin/Any.hashCode(<dispatch receiver>: kotlin.Any): kotlin.Int
  valueParameters = []
  callableIdIfNonLocal = kotlin/Any.hashCode
KtFunctionLikeSignature:
  receiverType = null
  returnType = kotlin.String
  symbol = kotlin/Any.toString(<dispatch receiver>: kotlin.Any): kotlin.String
  valueParameters = []
  callableIdIfNonLocal = kotlin/Any.toString


Declaration Scope:
KtFunctionSymbol:
  annotationsList: []
  callableIdIfNonLocal: /Outer.A.foo
  contextReceivers: []
  contractEffects: []
  hasStableParameterNames: true
  isActual: false
  isBuiltinFunctionInvoke: false
  isExpect: false
  isExtension: false
  isExternal: false
  isInfix: false
  isInline: false
  isOperator: false
  isOverride: false
  isStatic: false
  isSuspend: false
  modality: FINAL
  name: foo
  origin: SOURCE
  receiverParameter: null
  returnType: KtUsualClassType:
    annotationsList: []
    ownTypeArguments: [
      KtTypeParameterType:
        annotationsList: []
        type: X
      KtUsualClassType:
        annotationsList: []
        ownTypeArguments: [
          KtTypeParameterType:
            annotationsList: []
            type: Y
          KtTypeParameterType:
            annotationsList: []
            type: O
        ]
        type: kotlin/collections/Map<Y, O>
    ]
    type: kotlin/collections/Map<X, kotlin/collections/Map<Y, O>>
  symbolKind: CLASS_MEMBER
  typeParameters: [
    KtTypeParameterSymbol(Y)
  ]
  valueParameters: [
    KtValueParameterSymbol:
      annotationsList: []
      callableIdIfNonLocal: null
      contextReceivers: []
      generatedPrimaryConstructorProperty: null
      hasDefaultValue: false
      isCrossinline: false
      isExtension: false
      isImplicitLambdaParameter: false
      isNoinline: false
      isVararg: false
      name: x
      origin: SOURCE
      receiverParameter: null
      returnType: KtTypeParameterType:
        annotationsList: []
        type: X
      symbolKind: LOCAL
      typeParameters: []
    KtValueParameterSymbol:
      annotationsList: []
      callableIdIfNonLocal: null
      contextReceivers: []
      generatedPrimaryConstructorProperty: null
      hasDefaultValue: false
      isCrossinline: false
      isExtension: false
      isImplicitLambdaParameter: false
      isNoinline: false
      isVararg: false
      name: y
      origin: SOURCE
      receiverParameter: null
      returnType: KtTypeParameterType:
        annotationsList: []
        type: Y
      symbolKind: LOCAL
      typeParameters: []
  ]
  visibility: Public
KtKotlinPropertySymbol:
  annotationsList: []
  backingFieldSymbol: KtBackingFieldSymbol:
    annotationsList: []
    callableIdIfNonLocal: null
    contextReceivers: []
    isExtension: false
    name: field
    origin: PROPERTY_BACKING_FIELD
    owningProperty: KtKotlinPropertySymbol(/Outer.A.map)
    receiverParameter: null
    returnType: KtUsualClassType:
      annotationsList: []
      ownTypeArguments: [
        KtTypeParameterType:
          annotationsList: []
          type: X
        KtTypeParameterType:
          annotationsList: []
          type: O
      ]
      type: kotlin/collections/Map<X, O>
    symbolKind: LOCAL
    typeParameters: []
  callableIdIfNonLocal: /Outer.A.map
  contextReceivers: []
  getter: KtPropertyGetterSymbol:
    annotationsList: []
    callableIdIfNonLocal: null
    contextReceivers: []
    hasBody: false
    hasStableParameterNames: true
    isDefault: true
    isExtension: false
    isInline: false
    isOverride: false
    modality: FINAL
    origin: SOURCE
    receiverParameter: null
    returnType: KtUsualClassType:
      annotationsList: []
      ownTypeArguments: [
        KtTypeParameterType:
          annotationsList: []
          type: X
        KtTypeParameterType:
          annotationsList: []
          type: O
      ]
      type: kotlin/collections/Map<X, O>
    symbolKind: ACCESSOR
    typeParameters: []
    valueParameters: []
    visibility: Public
  hasBackingField: true
  hasGetter: true
  hasSetter: false
  initializer: null
  isActual: false
  isConst: false
  isDelegatedProperty: false
  isExpect: false
  isExtension: false
  isFromPrimaryConstructor: false
  isLateInit: false
  isOverride: false
  isStatic: false
  isVal: true
  modality: FINAL
  name: map
  origin: SOURCE
  receiverParameter: null
  returnType: KtUsualClassType:
    annotationsList: []
    ownTypeArguments: [
      KtTypeParameterType:
        annotationsList: []
        type: X
      KtTypeParameterType:
        annotationsList: []
        type: O
    ]
    type: kotlin/collections/Map<X, O>
  setter: null
  symbolKind: CLASS_MEMBER
  typeParameters: []
  visibility: Public
KtFunctionSymbol:
  annotationsList: []
  callableIdIfNonLocal: kotlin/Any.equals
  contextReceivers: []
  contractEffects: []
  hasStableParameterNames: true
  isActual: false
  isBuiltinFunctionInvoke: false
  isExpect: false
  isExtension: false
  isExternal: false
  isInfix: false
  isInline: false
  isOperator: true
  isOverride: false
  isStatic: false
  isSuspend: false
  modality: OPEN
  name: equals
  origin: LIBRARY
  receiverParameter: null
  returnType: KtUsualClassType:
    annotationsList: []
    ownTypeArguments: []
    type: kotlin/Boolean
  symbolKind: CLASS_MEMBER
  typeParameters: []
  valueParameters: [
    KtValueParameterSymbol:
      annotationsList: []
      callableIdIfNonLocal: null
      contextReceivers: []
      generatedPrimaryConstructorProperty: null
      hasDefaultValue: false
      isCrossinline: false
      isExtension: false
      isImplicitLambdaParameter: false
      isNoinline: false
      isVararg: false
      name: other
      origin: LIBRARY
      receiverParameter: null
      returnType: KtUsualClassType:
        annotationsList: []
        ownTypeArguments: []
        type: kotlin/Any?
      symbolKind: LOCAL
      typeParameters: []
  ]
  visibility: Public
KtFunctionSymbol:
  annotationsList: []
  callableIdIfNonLocal: kotlin/Any.hashCode
  contextReceivers: []
  contractEffects: []
  hasStableParameterNames: true
  isActual: false
  isBuiltinFunctionInvoke: false
  isExpect: false
  isExtension: false
  isExternal: false
  isInfix: false
  isInline: false
  isOperator: false
  isOverride: false
  isStatic: false
  isSuspend: false
  modality: OPEN
  name: hashCode
  origin: LIBRARY
  receiverParameter: null
  returnType: KtUsualClassType:
    annotationsList: []
    ownTypeArguments: []
    type: kotlin/Int
  symbolKind: CLASS_MEMBER
  typeParameters: []
  valueParameters: []
  visibility: Public
KtFunctionSymbol:
  annotationsList: []
  callableIdIfNonLocal: kotlin/Any.toString
  contextReceivers: []
  contractEffects: []
  hasStableParameterNames: true
  isActual: false
  isBuiltinFunctionInvoke: false
  isExpect: false
  isExtension: false
  isExternal: false
  isInfix: false
  isInline: false
  isOperator: false
  isOverride: false
  isStatic: false
  isSuspend: false
  modality: OPEN
  name: toString
  origin: LIBRARY
  receiverParameter: null
  returnType: KtUsualClassType:
    annotationsList: []
    ownTypeArguments: []
    type: kotlin/String
  symbolKind: CLASS_MEMBER
  typeParameters: []
  valueParameters: []
  visibility: Public