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'
  null

KtUserType(157,158): 'E'
  null

KtNameReferenceExpression(157,158): 'E'
  null

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

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

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

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

KtNameReferenceExpression(161,167): 'Either'
  null

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

KtTypeProjection(168,169): 'E'
  null

KtTypeReference(168,169): 'E'
  null

KtUserType(168,169): 'E'
  null

KtNameReferenceExpression(168,169): 'E'
  null

KtTypeProjection(171,178): 'Nothing'
  null

KtTypeReference(171,178): 'Nothing'
  null

KtUserType(171,178): 'Nothing'
  null

KtNameReferenceExpression(171,178): 'Nothing'
  null

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'
  null

KtUserType(219,220): 'A'
  null

KtNameReferenceExpression(219,220): 'A'
  null

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

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

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

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

KtNameReferenceExpression(223,229): 'Either'
  null

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

KtTypeProjection(230,237): 'Nothing'
  null

KtTypeReference(230,237): 'Nothing'
  null

KtUserType(230,237): 'Nothing'
  null

KtNameReferenceExpression(230,237): 'Nothing'
  null

KtTypeProjection(239,240): 'A'
  null

KtTypeReference(239,240): 'A'
  null

KtUserType(239,240): 'A'
  null

KtNameReferenceExpression(239,240): 'A'
  null

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>'
  null

KtUserType(256,268): 'Either<E, A>'
  null

KtNameReferenceExpression(256,262): 'Either'
  null

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

KtTypeProjection(263,264): 'E'
  null

KtTypeReference(263,264): 'E'
  null

KtUserType(263,264): 'E'
  null

KtNameReferenceExpression(263,264): 'E'
  null

KtTypeProjection(266,267): 'A'
  null

KtTypeReference(266,267): 'A'
  null

KtUserType(266,267): 'A'
  null

KtNameReferenceExpression(266,267): 'A'
  null

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

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

KtTypeReference(288,289): 'A'
  null

KtUserType(288,289): 'A'
  null

KtNameReferenceExpression(288,289): 'A'
  null

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

KtThisExpression(299,303): 'this'
  null

KtNameReferenceExpression(299,303): 'this'
  null

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

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

KtTypeReference(314,318): 'Left'
  null

KtUserType(314,318): 'Left'
  null

KtNameReferenceExpression(314,318): 'Left'
  null

KtNameReferenceExpression(322,329): 'default'
  KaCallResolutionSuccess:
    call = KaSimpleVariableAccessCall:
      contextArguments = []
      dispatchReceiver = null
      extensionReceiver = null
      isContextSensitive = false
      kind = Read
      signature = KaVariableSignature:
        name = default
        receiverType = null
        returnType = A
        symbol = default: A
        contextParameters = []
        callableId = null
      typeArgumentsMapping = {}

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

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

KtTypeReference(337,342): 'Right'
  null

KtUserType(337,342): 'Right'
  null

KtNameReferenceExpression(337,342): 'Right'
  null

KtNameReferenceExpression(346,351): 'value'
  KaCallResolutionSuccess:
    call = KaSimpleVariableAccessCall:
      contextArguments = []
      dispatchReceiver = KaSmartCastedReceiverValue:
        original = KaImplicitReceiverValue:
          symbol = 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
          type = Either<E, A>
        type = Either.Right<A>
      extensionReceiver = null
      isContextSensitive = false
      kind = Read
      signature = KaVariableSignature:
        name = value
        receiverType = null
        returnType = A
        symbol = val value: A
        contextParameters = []
        callableId = /Either.Right.value
      typeArgumentsMapping = {}
