KtFile: 'either.kt'
  null

KtPackageDirective(0,0): ''
  null

KtImportList(0,0): ''
  null

KtClass(78,243): 'sealed interface Either<out E, out A> {'
  null

KtDeclarationModifierList(78,84): 'sealed'
  null

KtTypeParameterList(101,115): '<out E, out A>'
  null

KtTypeParameter(102,107): 'out E'
  null

KtDeclarationModifierList(102,105): 'out'
  null

KtTypeParameter(109,114): 'out A'
  null

KtDeclarationModifierList(109,112): 'out'
  null

KtClassBody(116,243): '{'
  null

KtClass(122,179): 'data class  Left<out E>(val error: E): Either<E, Nothing>'
  null

KtDeclarationModifierList(122,126): 'data'
  null

KtTypeParameterList(138,145): '<out E>'
  null

KtTypeParameter(139,144): 'out E'
  null

KtDeclarationModifierList(139,142): 'out'
  null

KtPrimaryConstructor(145,159): '(val error: E)'
  null

KtParameterList(145,159): '(val error: E)'
  null

KtParameter(146,158): 'val error: E'
  null

KtTypeReference(157,158): 'E'
  KaSymbolResolutionSuccess:
    symbols = [
      E
    ]

KtUserType(157,158): 'E'
  KaSymbolResolutionSuccess:
    symbols = [
      E
    ]

KtNameReferenceExpression(157,158): 'E'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      E
    ]

KtSuperTypeList(161,179): 'Either<E, Nothing>'
  null

KtSuperTypeEntry(161,179): 'Either<E, Nothing>'
  KaSymbolResolutionSuccess:
    symbols = [
      /Either
    ]

KtTypeReference(161,179): 'Either<E, Nothing>'
  KaSymbolResolutionSuccess:
    symbols = [
      /Either
    ]

KtUserType(161,179): 'Either<E, Nothing>'
  KaSymbolResolutionSuccess:
    symbols = [
      /Either
    ]

KtNameReferenceExpression(161,167): 'Either'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /Either
    ]

KtTypeArgumentList(167,179): '<E, Nothing>'
  null

KtTypeProjection(168,169): 'E'
  null

KtTypeReference(168,169): 'E'
  KaSymbolResolutionSuccess:
    symbols = [
      E
    ]

KtUserType(168,169): 'E'
  KaSymbolResolutionSuccess:
    symbols = [
      E
    ]

KtNameReferenceExpression(168,169): 'E'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      E
    ]

KtTypeProjection(171,178): 'Nothing'
  null

KtTypeReference(171,178): 'Nothing'
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/Nothing
    ]

KtUserType(171,178): 'Nothing'
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/Nothing
    ]

KtNameReferenceExpression(171,178): 'Nothing'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/Nothing
    ]

KtClass(184,241): 'data class Right<out A>(val value: A): Either<Nothing, A>'
  null

KtDeclarationModifierList(184,188): 'data'
  null

KtTypeParameterList(200,207): '<out A>'
  null

KtTypeParameter(201,206): 'out A'
  null

KtDeclarationModifierList(201,204): 'out'
  null

KtPrimaryConstructor(207,221): '(val value: A)'
  null

KtParameterList(207,221): '(val value: A)'
  null

KtParameter(208,220): 'val value: A'
  null

KtTypeReference(219,220): 'A'
  KaSymbolResolutionSuccess:
    symbols = [
      A
    ]

KtUserType(219,220): 'A'
  KaSymbolResolutionSuccess:
    symbols = [
      A
    ]

KtNameReferenceExpression(219,220): 'A'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      A
    ]

KtSuperTypeList(223,241): 'Either<Nothing, A>'
  null

KtSuperTypeEntry(223,241): 'Either<Nothing, A>'
  KaSymbolResolutionSuccess:
    symbols = [
      /Either
    ]

KtTypeReference(223,241): 'Either<Nothing, A>'
  KaSymbolResolutionSuccess:
    symbols = [
      /Either
    ]

KtUserType(223,241): 'Either<Nothing, A>'
  KaSymbolResolutionSuccess:
    symbols = [
      /Either
    ]

KtNameReferenceExpression(223,229): 'Either'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /Either
    ]

KtTypeArgumentList(229,241): '<Nothing, A>'
  null

KtTypeProjection(230,237): 'Nothing'
  null

KtTypeReference(230,237): 'Nothing'
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/Nothing
    ]

KtUserType(230,237): 'Nothing'
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/Nothing
    ]

KtNameReferenceExpression(230,237): 'Nothing'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/Nothing
    ]

KtTypeProjection(239,240): 'A'
  null

KtTypeReference(239,240): 'A'
  KaSymbolResolutionSuccess:
    symbols = [
      A
    ]

KtUserType(239,240): 'A'
  KaSymbolResolutionSuccess:
    symbols = [
      A
    ]

KtNameReferenceExpression(239,240): 'A'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      A
    ]

KtNamedFunction(245,353): 'fun <E, A> Either<E, A>.getOrElse(default: A) = when (this) {'
  null

KtTypeParameterList(249,255): '<E, A>'
  null

KtTypeParameter(250,251): 'E'
  null

KtTypeParameter(253,254): 'A'
  null

KtTypeReference(256,268): 'Either<E, A>'
  KaSymbolResolutionSuccess:
    symbols = [
      /Either
    ]

KtUserType(256,268): 'Either<E, A>'
  KaSymbolResolutionSuccess:
    symbols = [
      /Either
    ]

KtNameReferenceExpression(256,262): 'Either'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /Either
    ]

KtTypeArgumentList(262,268): '<E, A>'
  null

KtTypeProjection(263,264): 'E'
  null

KtTypeReference(263,264): 'E'
  KaSymbolResolutionSuccess:
    symbols = [
      E
    ]

KtUserType(263,264): 'E'
  KaSymbolResolutionSuccess:
    symbols = [
      E
    ]

KtNameReferenceExpression(263,264): 'E'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: true
  KaSymbolResolutionSuccess:
    symbols = [
      E
    ]

KtTypeProjection(266,267): 'A'
  null

KtTypeReference(266,267): 'A'
  KaSymbolResolutionSuccess:
    symbols = [
      A
    ]

KtUserType(266,267): 'A'
  KaSymbolResolutionSuccess:
    symbols = [
      A
    ]

KtNameReferenceExpression(266,267): 'A'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: true
  KaSymbolResolutionSuccess:
    symbols = [
      A
    ]

KtParameterList(278,290): '(default: A)'
  null

KtParameter(279,289): 'default: A'
  null

KtTypeReference(288,289): 'A'
  KaSymbolResolutionSuccess:
    symbols = [
      A
    ]

KtUserType(288,289): 'A'
  KaSymbolResolutionSuccess:
    symbols = [
      A
    ]

KtNameReferenceExpression(288,289): 'A'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: true
  KaSymbolResolutionSuccess:
    symbols = [
      A
    ]

KtWhenExpression(293,353): 'when (this) {'
  null

KtThisExpression(299,303): 'this'
  KaSymbolResolutionSuccess:
    symbols = [
      KaReceiverParameterSymbol:
        anchorPsi: KtTypeReference
        annotations: []
        callableId: null
        contextParameters: []
        contextReceivers: []
        isActual: false
        isCompanion: false
        isDelegated: false
        isExpect: false
        isExtension: false
        isExternal: false
        isVal: true
        location: LOCAL
        modality: FINAL
        name: <receiver>
        origin: SOURCE
        owningCallableSymbol: KaNamedFunctionSymbol(/getOrElse)
        psi: KtTypeReference
        realPsi: KtTypeReference
        receiverParameter: null
        returnType: KaUsualClassType:
          annotations: []
          typeArguments: [
            KaTypeParameterType:
              annotations: []
              type: E
            KaTypeParameterType:
              annotations: []
              type: A
          ]
          type: Either<E, A>
        typeParameters: []
        visibility: PUBLIC
    ]

KtNameReferenceExpression(299,303): 'this'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      KaReceiverParameterSymbol:
        anchorPsi: KtTypeReference
        annotations: []
        callableId: null
        contextParameters: []
        contextReceivers: []
        isActual: false
        isCompanion: false
        isDelegated: false
        isExpect: false
        isExtension: false
        isExternal: false
        isVal: true
        location: LOCAL
        modality: FINAL
        name: <receiver>
        origin: SOURCE
        owningCallableSymbol: KaNamedFunctionSymbol(/getOrElse)
        psi: KtTypeReference
        realPsi: KtTypeReference
        receiverParameter: null
        returnType: KaUsualClassType:
          annotations: []
          typeArguments: [
            KaTypeParameterType:
              annotations: []
              type: E
            KaTypeParameterType:
              annotations: []
              type: A
          ]
          type: Either<E, A>
        typeParameters: []
        visibility: PUBLIC
    ]

KtWhenEntry(311,329): 'is Left -> default'
  null

KtWhenConditionIsPattern(311,318): 'is Left'
  null

KtTypeReference(314,318): 'Left'
  KaSymbolResolutionSuccess:
    symbols = [
      /Either.Left
    ]

KtUserType(314,318): 'Left'
  KaSymbolResolutionSuccess:
    symbols = [
      /Either.Left
    ]

KtNameReferenceExpression(314,318): 'Left'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /Either.Left
    ]

KtNameReferenceExpression(322,329): 'default'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: true
  KaSymbolResolutionSuccess:
    symbols = [
      default: A
    ]

KtWhenEntry(334,351): 'is Right -> value'
  null

KtWhenConditionIsPattern(334,342): 'is Right'
  null

KtTypeReference(337,342): 'Right'
  KaSymbolResolutionSuccess:
    symbols = [
      /Either.Right
    ]

KtUserType(337,342): 'Right'
  KaSymbolResolutionSuccess:
    symbols = [
      /Either.Right
    ]

KtNameReferenceExpression(337,342): 'Right'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /Either.Right
    ]

KtNameReferenceExpression(346,351): 'value'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      val value: A
    ]
