Expression: a
KaType: Outer<kotlin.String>.A<kotlin.Int>

KaTypeScope:
KaFunctionSignature:
  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 = [
    KaVariableSignature:
      name = x
      receiverType = null
      returnType = kotlin.Int
      symbol = x: X
      contextParameters = []
      callableId = null,
    KaVariableSignature:
      name = y
      receiverType = null
      returnType = Y
      symbol = y: Y
      contextParameters = []
      callableId = null
  ]
  contextParameters = []
  callableId = /Outer.A.foo
KaVariableSignature:
  name = map
  receiverType = null
  returnType = kotlin.collections.Map<kotlin.Int, kotlin.String>
  symbol = val map: kotlin.collections.Map<X, O>
  contextParameters = []
  callableId = /Outer.A.map
KaFunctionSignature:
  receiverType = null
  returnType = kotlin.Boolean
  symbol = kotlin/Any.equals(<dispatch receiver>: kotlin.Any, other: kotlin.Any?): kotlin.Boolean
  valueParameters = [
    KaVariableSignature:
      name = other
      receiverType = null
      returnType = kotlin.Any?
      symbol = other: kotlin.Any?
      contextParameters = []
      callableId = null
  ]
  contextParameters = []
  callableId = kotlin/Any.equals
KaFunctionSignature:
  receiverType = null
  returnType = kotlin.Int
  symbol = kotlin/Any.hashCode(<dispatch receiver>: kotlin.Any): kotlin.Int
  valueParameters = []
  contextParameters = []
  callableId = kotlin/Any.hashCode
KaFunctionSignature:
  receiverType = null
  returnType = kotlin.String
  symbol = kotlin/Any.toString(<dispatch receiver>: kotlin.Any): kotlin.String
  valueParameters = []
  contextParameters = []
  callableId = kotlin/Any.toString


Declaration Scope:
KaNamedFunctionSymbol:
  anchorPsi: KtNamedFunction
  annotations: []
  callableId: /Outer.A.foo
  contextParameters: []
  contextReceivers: []
  contractEffects: []
  hasStableParameterNames: true
  isActual: false
  isBuiltinFunctionInvoke: false
  isCompanion: false
  isExpect: false
  isExtension: false
  isExternal: false
  isInfix: false
  isInline: false
  isOperator: false
  isOverride: false
  isStatic: false
  isSuspend: false
  isTailRec: false
  location: CLASS
  modality: FINAL
  name: foo
  origin: SOURCE
  psi: KtNamedFunction
  realPsi: KtNamedFunction
  receiverParameter: null
  returnType: KaUsualClassType:
    annotations: []
    typeArguments: [
      KaTypeParameterType:
        annotations: []
        type: X
      KaUsualClassType:
        annotations: []
        typeArguments: [
          KaTypeParameterType:
            annotations: []
            type: Y
          KaTypeParameterType:
            annotations: []
            type: O
        ]
        type: kotlin/collections/Map<Y, O>
    ]
    type: kotlin/collections/Map<X, kotlin/collections/Map<Y, O>>
  typeParameters: [
    KaTypeParameterSymbol:
      anchorPsi: KtTypeParameter
      annotations: []
      isActual: false
      isExpect: false
      isExternal: false
      isReified: false
      location: LOCAL
      modality: FINAL
      name: Y
      origin: SOURCE
      psi: KtTypeParameter
      realPsi: KtTypeParameter
      upperBounds: []
      variance: INVARIANT
      visibility: LOCAL
  ]
  valueParameters: [
    KaValueParameterSymbol:
      anchorPsi: KtParameter
      annotations: []
      callableId: null
      contextParameters: []
      contextReceivers: []
      hasDeclaredDefaultValue: false
      hasDefaultValue: false
      isActual: false
      isCompanion: false
      isCrossinline: false
      isDelegated: false
      isExpect: false
      isExtension: false
      isExternal: false
      isImplicitLambdaParameter: false
      isNoinline: false
      isVal: true
      isVararg: false
      location: LOCAL
      modality: FINAL
      name: x
      origin: SOURCE
      primaryConstructorProperty: null
      psi: KtParameter
      realPsi: KtParameter
      receiverParameter: null
      returnType: KaTypeParameterType:
        annotations: []
        type: X
      typeParameters: []
      visibility: PUBLIC
    KaValueParameterSymbol:
      anchorPsi: KtParameter
      annotations: []
      callableId: null
      contextParameters: []
      contextReceivers: []
      hasDeclaredDefaultValue: false
      hasDefaultValue: false
      isActual: false
      isCompanion: false
      isCrossinline: false
      isDelegated: false
      isExpect: false
      isExtension: false
      isExternal: false
      isImplicitLambdaParameter: false
      isNoinline: false
      isVal: true
      isVararg: false
      location: LOCAL
      modality: FINAL
      name: y
      origin: SOURCE
      primaryConstructorProperty: null
      psi: KtParameter
      realPsi: KtParameter
      receiverParameter: null
      returnType: KaTypeParameterType:
        annotations: []
        type: Y
      typeParameters: []
      visibility: PUBLIC
  ]
  visibility: PUBLIC
KaKotlinPropertySymbol:
  anchorPsi: KtProperty
  annotations: []
  backingFieldSymbol: KaBackingFieldSymbol:
    anchorPsi: KtProperty
    annotations: []
    callableId: null
    contextParameters: []
    contextReceivers: []
    isActual: false
    isCompanion: false
    isDelegated: false
    isExpect: false
    isExtension: false
    isExternal: false
    isNotDefault: false
    isVal: true
    location: PROPERTY
    modality: FINAL
    name: field
    origin: PROPERTY_BACKING_FIELD
    owningProperty: KaKotlinPropertySymbol(/Outer.A.map)
    psi: null
    realPsi: null
    receiverParameter: null
    returnType: KaUsualClassType:
      annotations: []
      typeArguments: [
        KaTypeParameterType:
          annotations: []
          type: X
        KaTypeParameterType:
          annotations: []
          type: O
      ]
      type: kotlin/collections/Map<X, O>
    typeParameters: []
    visibility: PRIVATE
  callableId: /Outer.A.map
  contextParameters: []
  contextReceivers: []
  getter: KaPropertyGetterSymbol:
    anchorPsi: KtProperty
    annotations: []
    callableId: null
    contextParameters: []
    contextReceivers: []
    hasStableParameterNames: true
    isActual: false
    isCompanion: false
    isExpect: false
    isExtension: false
    isExternal: false
    isInline: false
    isNotDefault: false
    isOverride: false
    location: PROPERTY
    modality: FINAL
    origin: SOURCE
    psi: null
    realPsi: null
    receiverParameter: null
    returnType: KaUsualClassType:
      annotations: []
      typeArguments: [
        KaTypeParameterType:
          annotations: []
          type: X
        KaTypeParameterType:
          annotations: []
          type: O
      ]
      type: kotlin/collections/Map<X, O>
    typeParameters: []
    valueParameters: []
    visibility: PUBLIC
  hasBackingField: true
  hasGetter: true
  hasSetter: false
  initializer: null
  isActual: false
  isCompanion: false
  isConst: false
  isDelegated: false
  isExpect: false
  isExtension: false
  isExternal: false
  isLateInit: false
  isOverride: false
  isStatic: false
  isVal: true
  location: CLASS
  modality: FINAL
  name: map
  origin: SOURCE
  primaryConstructorParameter: null
  psi: KtProperty
  realPsi: KtProperty
  receiverParameter: null
  returnType: KaUsualClassType:
    annotations: []
    typeArguments: [
      KaTypeParameterType:
        annotations: []
        type: X
      KaTypeParameterType:
        annotations: []
        type: O
    ]
    type: kotlin/collections/Map<X, O>
  setter: null
  typeParameters: []
  visibility: PUBLIC
KaNamedFunctionSymbol:
  anchorPsi: KtNamedFunction
  annotations: []
  callableId: kotlin/Any.equals
  contextParameters: []
  contextReceivers: []
  contractEffects: []
  hasStableParameterNames: true
  isActual: false
  isBuiltinFunctionInvoke: false
  isCompanion: false
  isExpect: false
  isExtension: false
  isExternal: false
  isInfix: false
  isInline: false
  isOperator: true
  isOverride: false
  isStatic: false
  isSuspend: false
  isTailRec: false
  location: CLASS
  modality: OPEN
  name: equals
  origin: LIBRARY
  psi: KtNamedFunction
  realPsi: KtNamedFunction
  receiverParameter: null
  returnType: KaUsualClassType:
    annotations: []
    typeArguments: []
    type: kotlin/Boolean
  typeParameters: []
  valueParameters: [
    KaValueParameterSymbol:
      anchorPsi: KtParameter
      annotations: []
      callableId: null
      contextParameters: []
      contextReceivers: []
      hasDeclaredDefaultValue: false
      hasDefaultValue: false
      isActual: false
      isCompanion: false
      isCrossinline: false
      isDelegated: false
      isExpect: false
      isExtension: false
      isExternal: false
      isImplicitLambdaParameter: false
      isNoinline: false
      isVal: true
      isVararg: false
      location: LOCAL
      modality: FINAL
      name: other
      origin: LIBRARY
      primaryConstructorProperty: null
      psi: KtParameter
      realPsi: KtParameter
      receiverParameter: null
      returnType: KaUsualClassType:
        annotations: []
        typeArguments: []
        type: kotlin/Any?
      typeParameters: []
      visibility: PUBLIC
  ]
  visibility: PUBLIC
KaNamedFunctionSymbol:
  anchorPsi: KtNamedFunction
  annotations: []
  callableId: kotlin/Any.hashCode
  contextParameters: []
  contextReceivers: []
  contractEffects: []
  hasStableParameterNames: true
  isActual: false
  isBuiltinFunctionInvoke: false
  isCompanion: false
  isExpect: false
  isExtension: false
  isExternal: false
  isInfix: false
  isInline: false
  isOperator: false
  isOverride: false
  isStatic: false
  isSuspend: false
  isTailRec: false
  location: CLASS
  modality: OPEN
  name: hashCode
  origin: LIBRARY
  psi: KtNamedFunction
  realPsi: KtNamedFunction
  receiverParameter: null
  returnType: KaUsualClassType:
    annotations: []
    typeArguments: []
    type: kotlin/Int
  typeParameters: []
  valueParameters: []
  visibility: PUBLIC
KaNamedFunctionSymbol:
  anchorPsi: KtNamedFunction
  annotations: []
  callableId: kotlin/Any.toString
  contextParameters: []
  contextReceivers: []
  contractEffects: []
  hasStableParameterNames: true
  isActual: false
  isBuiltinFunctionInvoke: false
  isCompanion: false
  isExpect: false
  isExtension: false
  isExternal: false
  isInfix: false
  isInline: false
  isOperator: false
  isOverride: false
  isStatic: false
  isSuspend: false
  isTailRec: false
  location: CLASS
  modality: OPEN
  name: toString
  origin: LIBRARY
  psi: KtNamedFunction
  realPsi: KtNamedFunction
  receiverParameter: null
  returnType: KaUsualClassType:
    annotations: []
    typeArguments: []
    type: kotlin/String
  typeParameters: []
  valueParameters: []
  visibility: PUBLIC
