KaFunctionType:
  abbreviation: null
  annotations: []
  classId: kotlin/reflect/KFunction3
  contextReceivers: []
  hasContextReceivers: false
  hasReceiver: true
  isReflectType: true
  isSuspend: false
  parameterTypes: [
    KaUsualClassType:
      abbreviation: null
      annotations: [
        kotlin/ParameterName(name = "a")
          psi: null
      ]
      classId: kotlin/Int
      qualifiers: [
        KaResolvedClassTypeQualifier:
          name: Int
          symbol: KaNamedClassSymbol(kotlin/Int)
          typeArguments: []
      ]
      symbol: KaNamedClassSymbol(kotlin/Int)
      typeArguments: []
      isMarkedNullable: false
      isNullable: false
      hasFlexibleNullability: false
    KaUsualClassType:
      abbreviation: null
      annotations: [
        kotlin/ParameterName(name = "b")
          psi: null
      ]
      classId: kotlin/String
      qualifiers: [
        KaResolvedClassTypeQualifier:
          name: String
          symbol: KaNamedClassSymbol(kotlin/String)
          typeArguments: []
      ]
      symbol: KaNamedClassSymbol(kotlin/String)
      typeArguments: []
      isMarkedNullable: false
      isNullable: false
      hasFlexibleNullability: false
  ]
  parameters: [
    KaBaseFunctionValueParameter [name: a, type: kotlin/Int]
    KaBaseFunctionValueParameter [name: b, type: kotlin/String]
  ]
  qualifiers: [
    KaResolvedClassTypeQualifier:
      name: KFunction3
      symbol: KaNamedClassSymbol(kotlin/reflect/KFunction3)
      typeArguments: [
        KaUsualClassType:
          abbreviation: null
          annotations: []
          classId: Foo
          qualifiers: [
            KaResolvedClassTypeQualifier:
              name: Foo
              symbol: KaNamedClassSymbol(Foo)
              typeArguments: []
          ]
          symbol: KaNamedClassSymbol(Foo)
          typeArguments: []
          isMarkedNullable: false
          isNullable: false
          hasFlexibleNullability: false
        KaUsualClassType:
          abbreviation: null
          annotations: [
            kotlin/ParameterName(name = "a")
              psi: null
          ]
          classId: kotlin/Int
          qualifiers: [
            KaResolvedClassTypeQualifier:
              name: Int
              symbol: KaNamedClassSymbol(kotlin/Int)
              typeArguments: []
          ]
          symbol: KaNamedClassSymbol(kotlin/Int)
          typeArguments: []
          isMarkedNullable: false
          isNullable: false
          hasFlexibleNullability: false
        KaUsualClassType:
          abbreviation: null
          annotations: [
            kotlin/ParameterName(name = "b")
              psi: null
          ]
          classId: kotlin/String
          qualifiers: [
            KaResolvedClassTypeQualifier:
              name: String
              symbol: KaNamedClassSymbol(kotlin/String)
              typeArguments: []
          ]
          symbol: KaNamedClassSymbol(kotlin/String)
          typeArguments: []
          isMarkedNullable: false
          isNullable: false
          hasFlexibleNullability: false
        KaUsualClassType:
          abbreviation: null
          annotations: []
          classId: kotlin/Unit
          qualifiers: [
            KaResolvedClassTypeQualifier:
              name: Unit
              symbol: KaNamedClassSymbol(kotlin/Unit)
              typeArguments: []
          ]
          symbol: KaNamedClassSymbol(kotlin/Unit)
          typeArguments: []
          isMarkedNullable: false
          isNullable: false
          hasFlexibleNullability: false
      ]
  ]
  receiverType: KaUsualClassType:
    abbreviation: null
    annotations: []
    classId: Foo
    qualifiers: [
      KaResolvedClassTypeQualifier:
        name: Foo
        symbol: KaNamedClassSymbol(Foo)
        typeArguments: []
    ]
    symbol: KaNamedClassSymbol(Foo)
    typeArguments: []
    isMarkedNullable: false
    isNullable: false
    hasFlexibleNullability: false
  returnType: KaUsualClassType:
    abbreviation: null
    annotations: []
    classId: kotlin/Unit
    qualifiers: [
      KaResolvedClassTypeQualifier:
        name: Unit
        symbol: KaNamedClassSymbol(kotlin/Unit)
        typeArguments: []
    ]
    symbol: KaNamedClassSymbol(kotlin/Unit)
    typeArguments: []
    isMarkedNullable: false
    isNullable: false
    hasFlexibleNullability: false
  symbol: KaNamedClassSymbol(kotlin/reflect/KFunction3)
  typeArguments: [
    KaUsualClassType:
      abbreviation: null
      annotations: []
      classId: Foo
      qualifiers: [
        KaResolvedClassTypeQualifier:
          name: Foo
          symbol: KaNamedClassSymbol(Foo)
          typeArguments: []
      ]
      symbol: KaNamedClassSymbol(Foo)
      typeArguments: []
      isMarkedNullable: false
      isNullable: false
      hasFlexibleNullability: false
    KaUsualClassType:
      abbreviation: null
      annotations: [
        kotlin/ParameterName(name = "a")
          psi: null
      ]
      classId: kotlin/Int
      qualifiers: [
        KaResolvedClassTypeQualifier:
          name: Int
          symbol: KaNamedClassSymbol(kotlin/Int)
          typeArguments: []
      ]
      symbol: KaNamedClassSymbol(kotlin/Int)
      typeArguments: []
      isMarkedNullable: false
      isNullable: false
      hasFlexibleNullability: false
    KaUsualClassType:
      abbreviation: null
      annotations: [
        kotlin/ParameterName(name = "b")
          psi: null
      ]
      classId: kotlin/String
      qualifiers: [
        KaResolvedClassTypeQualifier:
          name: String
          symbol: KaNamedClassSymbol(kotlin/String)
          typeArguments: []
      ]
      symbol: KaNamedClassSymbol(kotlin/String)
      typeArguments: []
      isMarkedNullable: false
      isNullable: false
      hasFlexibleNullability: false
    KaUsualClassType:
      abbreviation: null
      annotations: []
      classId: kotlin/Unit
      qualifiers: [
        KaResolvedClassTypeQualifier:
          name: Unit
          symbol: KaNamedClassSymbol(kotlin/Unit)
          typeArguments: []
      ]
      symbol: KaNamedClassSymbol(kotlin/Unit)
      typeArguments: []
      isMarkedNullable: false
      isNullable: false
      hasFlexibleNullability: false
  ]
  isMarkedNullable: false
  isNullable: false
  hasFlexibleNullability: false

Rendered type:
kotlin.reflect.KFunction3<Foo, kotlin.Int, kotlin.String, kotlin.Unit>
