KtFile: 2.14.kt
  PACKAGE_DIRECTIVE
    <empty list>
  IMPORT_LIST
    <empty list>
  FUN
    PsiElement(fun)('fun')
    PsiWhiteSpace(' ')
    TYPE_PARAMETER_LIST
      PsiElement(LT)('<')
      TYPE_PARAMETER
        PsiErrorElement:Type parameter name expected
          PsiElement(true)('true')
      PsiElement(GT)('>')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('f1')
    VALUE_PARAMETER_LIST
      PsiElement(LPAR)('(')
      PsiElement(RPAR)(')')
    PsiWhiteSpace(' ')
    BLOCK
      PsiElement(LBRACE)('{')
      PsiElement(RBRACE)('}')
  PsiWhiteSpace('\n\n')
  FUN
    PsiElement(fun)('fun')
    PsiWhiteSpace(' ')
    TYPE_PARAMETER_LIST
      PsiElement(LT)('<')
      TYPE_PARAMETER
        MODIFIER_LIST
          PsiElement(reified)('reified')
        PsiWhiteSpace(' ')
        PsiElement(IDENTIFIER)('T')
        PsiWhiteSpace(' ')
        PsiElement(COLON)(':')
        PsiWhiteSpace(' ')
        TYPE_REFERENCE
          PsiErrorElement:Type expected
            PsiElement(false)('false')
      PsiElement(GT)('>')
    PsiWhiteSpace(' ')
    TYPE_REFERENCE
      USER_TYPE
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('T')
    PsiElement(DOT)('.')
    PsiElement(IDENTIFIER)('f2')
    VALUE_PARAMETER_LIST
      PsiElement(LPAR)('(')
      PsiElement(RPAR)(')')
    PsiWhiteSpace(' ')
    BLOCK
      PsiElement(LBRACE)('{')
      PsiElement(RBRACE)('}')
  PsiWhiteSpace('\n\n')
  CLASS
    PsiElement(class)('class')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('B')
    TYPE_PARAMETER_LIST
      PsiElement(LT)('<')
      TYPE_PARAMETER
        PsiElement(IDENTIFIER)('K')
        PsiElement(COLON)(':')
        PsiWhiteSpace(' ')
        TYPE_REFERENCE
          USER_TYPE
            REFERENCE_EXPRESSION
              PsiElement(IDENTIFIER)('L')
            TYPE_ARGUMENT_LIST
              PsiElement(LT)('<')
              TYPE_PROJECTION
                TYPE_REFERENCE
                  USER_TYPE
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('M')
                    TYPE_ARGUMENT_LIST
                      PsiElement(LT)('<')
                      TYPE_PROJECTION
                        TYPE_REFERENCE
                          PsiErrorElement:Type expected
                            PsiElement(true)('true')
                      PsiElement(GT)('>')
              PsiElement(GT)('>')
      PsiElement(GT)('>')
    PsiWhiteSpace(' ')
    CLASS_BODY
      PsiElement(LBRACE)('{')
      PsiElement(RBRACE)('}')
  PsiWhiteSpace('\n\n')
  CLASS
    PsiElement(class)('class')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('B')
    TYPE_PARAMETER_LIST
      PsiElement(LT)('<')
      TYPE_PARAMETER
        PsiElement(IDENTIFIER)('K')
      PsiElement(COMMA)(',')
      PsiWhiteSpace(' ')
      TYPE_PARAMETER
        PsiElement(IDENTIFIER)('T')
        PsiElement(COLON)(':')
        PsiWhiteSpace(' ')
        TYPE_REFERENCE
          USER_TYPE
            REFERENCE_EXPRESSION
              PsiElement(IDENTIFIER)('A')
            TYPE_ARGUMENT_LIST
              PsiElement(LT)('<')
              TYPE_PROJECTION
                MODIFIER_LIST
                  PsiElement(in)('in')
                PsiWhiteSpace(' ')
                TYPE_REFERENCE
                  PsiErrorElement:Type expected
                    PsiElement(false)('false')
              PsiElement(GT)('>')
      PsiElement(GT)('>')
    PsiWhiteSpace(' ')
    CLASS_BODY
      PsiElement(LBRACE)('{')
      PsiElement(RBRACE)('}')
  PsiWhiteSpace('\n\n')
  FUN
    PsiElement(fun)('fun')
    PsiWhiteSpace(' ')
    TYPE_PARAMETER_LIST
      PsiElement(LT)('<')
      TYPE_PARAMETER
        PsiElement(IDENTIFIER)('T')
        PsiWhiteSpace(' ')
        PsiElement(COLON)(':')
        PsiWhiteSpace(' ')
        TYPE_REFERENCE
          USER_TYPE
            USER_TYPE
              USER_TYPE
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('org')
              PsiElement(DOT)('.')
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('jetbrains')
            PsiElement(DOT)('.')
            PsiErrorElement:Expecting type name
              <empty list>
      PsiErrorElement:Missing '>'
        PsiElement(true)('true')
    PsiErrorElement:Expecting function name or receiver type
      PsiElement(GT)('>')
    PsiErrorElement:Expecting '('
      <empty list>
  PsiWhiteSpace(' ')
  PsiErrorElement:Expecting a top level declaration
    PsiElement(IDENTIFIER)('T')
  PsiErrorElement:Expecting a top level declaration
    PsiElement(DOT)('.')
  PsiErrorElement:Expecting a top level declaration
    PsiElement(IDENTIFIER)('f3')
  PsiErrorElement:Expecting a top level declaration
    PsiElement(LPAR)('(')
  PsiErrorElement:Expecting a top level declaration
    PsiElement(RPAR)(')')
  PsiWhiteSpace(' ')
  FUN
    PsiErrorElement:Expecting a top level declaration
      <empty list>
    BLOCK
      PsiElement(LBRACE)('{')
      PsiElement(RBRACE)('}')
  PsiWhiteSpace('\n\n')
  FUN
    PsiElement(fun)('fun')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('f4')
    VALUE_PARAMETER_LIST
      PsiElement(LPAR)('(')
      VALUE_PARAMETER
        PsiElement(IDENTIFIER)('a')
        PsiElement(COLON)(':')
        PsiWhiteSpace(' ')
        TYPE_REFERENCE
          USER_TYPE
            REFERENCE_EXPRESSION
              PsiElement(IDENTIFIER)('List')
            TYPE_ARGUMENT_LIST
              PsiElement(LT)('<')
              TYPE_PROJECTION
                MODIFIER_LIST
                  PsiElement(out)('out')
                PsiWhiteSpace(' ')
                TYPE_REFERENCE
                  PsiErrorElement:Type expected
                    PsiElement(false)('false')
              PsiElement(GT)('>')
      PsiElement(RPAR)(')')
    PsiWhiteSpace(' ')
    BLOCK
      PsiElement(LBRACE)('{')
      PsiElement(RBRACE)('}')
  PsiWhiteSpace('\n\n')
  FUN
    PsiElement(fun)('fun')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('f5')
    VALUE_PARAMETER_LIST
      PsiElement(LPAR)('(')
      VALUE_PARAMETER
        PsiElement(IDENTIFIER)('a')
        PsiElement(COLON)(':')
        PsiWhiteSpace(' ')
        TYPE_REFERENCE
          USER_TYPE
            REFERENCE_EXPRESSION
              PsiElement(IDENTIFIER)('List')
            TYPE_ARGUMENT_LIST
              PsiElement(LT)('<')
              TYPE_PROJECTION
                TYPE_REFERENCE
                  USER_TYPE
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('List')
                    TYPE_ARGUMENT_LIST
                      PsiElement(LT)('<')
                      TYPE_PROJECTION
                        TYPE_REFERENCE
                          USER_TYPE
                            REFERENCE_EXPRESSION
                              PsiElement(IDENTIFIER)('List')
                            TYPE_ARGUMENT_LIST
                              PsiElement(LT)('<')
                              TYPE_PROJECTION
                                TYPE_REFERENCE
                                  NULLABLE_TYPE
                                    PsiErrorElement:Type expected
                                      PsiElement(true)('true')
                                    PsiElement(QUEST)('?')
                              PsiElement(GT)('>')
                      PsiElement(GT)('>')
              PsiElement(GT)('>')
      PsiElement(RPAR)(')')
    PsiWhiteSpace(' ')
    BLOCK
      PsiElement(LBRACE)('{')
      PsiElement(RBRACE)('}')