JetFile: TypeAnnotations.kt
  PACKAGE_DIRECTIVE
    <empty list>
  IMPORT_LIST
    <empty list>
  CLASS
    PsiElement(class)('class')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('F')
    PRIMARY_CONSTRUCTOR
      VALUE_PARAMETER_LIST
        PsiElement(LPAR)('(')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('a')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            ANNOTATION
              PsiElement(AT)('@')
              PsiElement(LBRACKET)('[')
              ANNOTATION_ENTRY
                CONSTRUCTOR_CALLEE
                  TYPE_REFERENCE
                    USER_TYPE
                      REFERENCE_EXPRESSION
                        PsiElement(IDENTIFIER)('a')
              PsiElement(RBRACKET)(']')
            PsiWhiteSpace(' ')
            ANNOTATION
              PsiElement(AT)('@')
              PsiElement(LBRACKET)('[')
              ANNOTATION_ENTRY
                CONSTRUCTOR_CALLEE
                  TYPE_REFERENCE
                    USER_TYPE
                      REFERENCE_EXPRESSION
                        PsiElement(IDENTIFIER)('b')
              PsiElement(RBRACKET)(']')
            PsiWhiteSpace(' ')
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('B')
        PsiElement(RPAR)(')')
  PsiWhiteSpace('\n\n')
  TYPEDEF
    PsiElement(typealias)('typealias')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('f')
    PsiWhiteSpace(' ')
    PsiElement(EQ)('=')
    PsiWhiteSpace(' ')
    TYPE_REFERENCE
      ANNOTATION
        PsiElement(AT)('@')
        PsiElement(LBRACKET)('[')
        ANNOTATION_ENTRY
          CONSTRUCTOR_CALLEE
            TYPE_REFERENCE
              USER_TYPE
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('b')
        PsiElement(RBRACKET)(']')
      PsiWhiteSpace(' ')
      ANNOTATION
        PsiElement(AT)('@')
        PsiElement(LBRACKET)('[')
        ANNOTATION_ENTRY
          CONSTRUCTOR_CALLEE
            TYPE_REFERENCE
              USER_TYPE
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('x')
        PsiElement(RBRACKET)(']')
      PsiWhiteSpace(' ')
      USER_TYPE
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('F')
        TYPE_ARGUMENT_LIST
          PsiElement(LT)('<')
          TYPE_PROJECTION
            TYPE_REFERENCE
              ANNOTATION
                PsiElement(AT)('@')
                PsiElement(LBRACKET)('[')
                ANNOTATION_ENTRY
                  CONSTRUCTOR_CALLEE
                    TYPE_REFERENCE
                      USER_TYPE
                        REFERENCE_EXPRESSION
                          PsiElement(IDENTIFIER)('x')
                PsiElement(RBRACKET)(']')
              PsiWhiteSpace(' ')
              USER_TYPE
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('A')
          PsiElement(COMMA)(',')
          PsiWhiteSpace(' ')
          TYPE_PROJECTION
            TYPE_REFERENCE
              USER_TYPE
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('B')
          PsiElement(GT)('>')
  PsiWhiteSpace('\n\n')
  CLASS
    PsiElement(class)('class')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('C')
    PsiWhiteSpace(' ')
    PsiElement(COLON)(':')
    PsiWhiteSpace(' ')
    DELEGATION_SPECIFIER_LIST
      DELEGATOR_SUPER_CLASS
        TYPE_REFERENCE
          ANNOTATION
            PsiElement(AT)('@')
            PsiElement(LBRACKET)('[')
            ANNOTATION_ENTRY
              CONSTRUCTOR_CALLEE
                TYPE_REFERENCE
                  USER_TYPE
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('a')
            PsiElement(RBRACKET)(']')
          PsiWhiteSpace(' ')
          USER_TYPE
            REFERENCE_EXPRESSION
              PsiElement(IDENTIFIER)('B')
      PsiElement(COMMA)(',')
      PsiWhiteSpace(' ')
      DELEGATOR_BY
        TYPE_REFERENCE
          ANNOTATION
            PsiElement(AT)('@')
            PsiElement(LBRACKET)('[')
            ANNOTATION_ENTRY
              CONSTRUCTOR_CALLEE
                TYPE_REFERENCE
                  USER_TYPE
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('c')
            PsiWhiteSpace(' ')
            ANNOTATION_ENTRY
              CONSTRUCTOR_CALLEE
                TYPE_REFERENCE
                  USER_TYPE
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('d')
            PsiElement(RBRACKET)(']')
          PsiWhiteSpace(' ')
          USER_TYPE
            REFERENCE_EXPRESSION
              PsiElement(IDENTIFIER)('E')
        PsiWhiteSpace(' ')
        PsiElement(by)('by')
        PsiWhiteSpace(' ')
        REFERENCE_EXPRESSION
          PsiElement(IDENTIFIER)('F')
      PsiElement(COMMA)(',')
      PsiWhiteSpace(' ')
      DELEGATOR_SUPER_CALL
        CONSTRUCTOR_CALLEE
          TYPE_REFERENCE
            ANNOTATION
              PsiElement(AT)('@')
              PsiElement(LBRACKET)('[')
              ANNOTATION_ENTRY
                CONSTRUCTOR_CALLEE
                  TYPE_REFERENCE
                    USER_TYPE
                      REFERENCE_EXPRESSION
                        PsiElement(IDENTIFIER)('g')
              PsiElement(RBRACKET)(']')
            PsiWhiteSpace(' ')
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('H')
        VALUE_ARGUMENT_LIST
          PsiElement(LPAR)('(')
          PsiElement(RPAR)(')')
      PsiElement(COMMA)(',')
      PsiWhiteSpace(' ')
      DELEGATOR_SUPER_CLASS
        TYPE_REFERENCE
          ANNOTATION
            PsiElement(AT)('@')
            PsiElement(LBRACKET)('[')
            ANNOTATION_ENTRY
              CONSTRUCTOR_CALLEE
                TYPE_REFERENCE
                  USER_TYPE
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('i')
            PsiElement(RBRACKET)(']')
          PsiWhiteSpace(' ')
          FUNCTION_TYPE
            VALUE_PARAMETER_LIST
              PsiElement(LPAR)('(')
              PsiElement(RPAR)(')')
            PsiWhiteSpace(' ')
            PsiElement(ARROW)('->')
            PsiWhiteSpace(' ')
            TYPE_REFERENCE
              USER_TYPE
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('Unit')
