JetFile: SoftKeywords.jet
  NAMESPACE
    PsiElement(namespace)('namespace')
    PsiWhiteSpace(' ')
    NAMESPACE_NAME
      PsiElement(IDENTIFIER)('foo')
      PsiElement(DOT)('.')
      PsiElement(IDENTIFIER)('bar')
      PsiElement(DOT)('.')
      PsiElement(IDENTIFIER)('goo')
    PsiWhiteSpace('\n\n')
    IMPORT_DIRECTIVE
      PsiElement(import)('import')
      PsiWhiteSpace(' ')
      REFERENCE_EXPRESSION
        PsiElement(IDENTIFIER)('foo')
    PsiWhiteSpace('\n\n')
    CLASS
      MODIFIER_LIST
        PsiElement(public)('public')
        PsiWhiteSpace(' ')
        PsiElement(protected)('protected')
        PsiWhiteSpace(' ')
        PsiElement(private)('private')
        PsiWhiteSpace(' ')
        PsiElement(internal)('internal')
        PsiWhiteSpace('\n')
        PsiElement(abstract)('abstract')
        PsiWhiteSpace('\n')
        PsiElement(open)('open')
        PsiWhiteSpace('\n')
        PsiElement(enum)('enum')
        PsiWhiteSpace('\n')
        PsiElement(open)('open')
        PsiWhiteSpace('\n')
        PsiElement(annotation)('annotation')
        PsiWhiteSpace('\n')
        PsiElement(override)('override')
        PsiWhiteSpace('\n')
        PsiElement(open)('open')
        PsiWhiteSpace('\n')
        PsiElement(abstract)('abstract')
        PsiWhiteSpace('\n')
        PsiElement(private)('private')
        PsiWhiteSpace('\n')
        PsiElement(protected)('protected')
        PsiWhiteSpace('\n')
        PsiElement(public)('public')
        PsiWhiteSpace('\n')
        PsiElement(internal)('internal')
        PsiWhiteSpace('\n')
        PsiElement(in)('in')
        PsiWhiteSpace('\n')
        PsiElement(out)('out')
        PsiWhiteSpace('\n')
        PsiElement(ref)('ref')
      PsiWhiteSpace('\n ')
      PsiElement(class)('class')
      PsiWhiteSpace(' ')
      PsiElement(IDENTIFIER)('Bar')
      TYPE_PARAMETER_LIST
        PsiElement(LT)('<')
        TYPE_PARAMETER
          PsiElement(IDENTIFIER)('abstract')
        PsiElement(COMMA)(',')
        PsiWhiteSpace(' ')
        TYPE_PARAMETER
          MODIFIER_LIST
            PsiElement(abstract)('abstract')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('enum')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('T')
        PsiElement(COMMA)(',')
        PsiWhiteSpace(' ')
        TYPE_PARAMETER
          MODIFIER_LIST
            PsiElement(out)('out')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('open')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n    ')
        TYPE_PARAMETER
          MODIFIER_LIST
            PsiElement(public)('public')
            PsiWhiteSpace(' ')
            PsiElement(protected)('protected')
            PsiWhiteSpace(' ')
            PsiElement(private)('private')
            PsiWhiteSpace(' ')
            PsiElement(internal)('internal')
            PsiWhiteSpace(' ')
            PsiElement(abstract)('abstract')
            PsiWhiteSpace('\n    ')
            PsiElement(open)('open')
            PsiWhiteSpace('\n    ')
            PsiElement(enum)('enum')
            PsiWhiteSpace('\n    ')
            PsiElement(open)('open')
            PsiWhiteSpace('\n    ')
            PsiElement(annotation)('annotation')
            PsiWhiteSpace('\n    ')
            PsiElement(override)('override')
            PsiWhiteSpace('\n    ')
            PsiElement(open)('open')
            PsiWhiteSpace('\n    ')
            PsiElement(abstract)('abstract')
            PsiWhiteSpace('\n    ')
            PsiElement(private)('private')
            PsiWhiteSpace('\n    ')
            PsiElement(protected)('protected')
            PsiWhiteSpace('\n    ')
            PsiElement(public)('public')
            PsiWhiteSpace('\n    ')
            PsiElement(internal)('internal')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('open')
        PsiWhiteSpace('\n ')
        PsiElement(GT)('>')
      PsiWhiteSpace(' ')
      VALUE_PARAMETER_LIST
        PsiElement(LPAR)('(')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('a')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('B')
        PsiElement(RPAR)(')')
      PsiWhiteSpace(' ')
      PsiElement(COLON)(':')
      PsiWhiteSpace(' ')
      DELEGATION_SPECIFIER_LIST
        DELEGATOR_BY
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('A')
          PsiWhiteSpace(' ')
          PsiElement(by)('by')
          PsiWhiteSpace(' ')
          REFERENCE_EXPRESSION
            PsiElement(IDENTIFIER)('b')
      PsiWhiteSpace(' ')
      CLASS_BODY
        PsiElement(LBRACE)('{')
        PsiWhiteSpace('\n    ')
        PROPERTY
          MODIFIER_LIST
            PsiElement(public)('public')
            PsiWhiteSpace(' ')
            PsiElement(protected)('protected')
            PsiWhiteSpace(' ')
            PsiElement(private)('private')
            PsiWhiteSpace(' ')
            PsiElement(internal)('internal')
          PsiWhiteSpace(' ')
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('abstract')
        PsiWhiteSpace('\n    ')
        PROPERTY
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('open')
        PsiWhiteSpace('\n    ')
        PROPERTY
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('enum')
        PsiWhiteSpace('\n    ')
        PROPERTY
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('open')
        PsiWhiteSpace('\n    ')
        PROPERTY
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('annotation')
        PsiWhiteSpace('\n    ')
        PROPERTY
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('override')
        PsiWhiteSpace('\n    ')
        PROPERTY
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('open')
        PsiWhiteSpace('\n    ')
        PROPERTY
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('abstract')
        PsiWhiteSpace('\n    ')
        PROPERTY
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('private')
        PsiWhiteSpace('\n    ')
        PROPERTY
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('protected')
        PsiWhiteSpace('\n    ')
        PROPERTY
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('public')
        PsiWhiteSpace('\n    ')
        PROPERTY
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('internal')
        PsiWhiteSpace('\n    ')
        PROPERTY
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('lazy')
        PsiWhiteSpace('\n    ')
        PROPERTY
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('wraps')
        PsiWhiteSpace('\n    ')
        PROPERTY
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('import')
        PsiWhiteSpace('\n    ')
        PROPERTY
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('where')
        PsiWhiteSpace('\n    ')
        PROPERTY
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('by')
        PsiWhiteSpace('\n    ')
        PROPERTY
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('get')
        PsiWhiteSpace('\n    ')
        PROPERTY
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('set')
        PsiWhiteSpace('\n    ')
        PROPERTY
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('public')
        PsiWhiteSpace('\n    ')
        PROPERTY
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('private')
        PsiWhiteSpace('\n    ')
        PROPERTY
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('protected')
        PsiWhiteSpace('\n    ')
        PROPERTY
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('internal')
          PsiWhiteSpace('\n      ')
          PROPERTY_ACCESSOR
            PsiElement(get)('get')
            PsiElement(LPAR)('(')
            PsiElement(RPAR)(')')
            PsiWhiteSpace(' ')
            PsiElement(EQ)('=')
            PsiWhiteSpace(' ')
            REFERENCE_EXPRESSION
              PsiElement(IDENTIFIER)('a')
          PsiWhiteSpace('\n      ')
          PROPERTY_ACCESSOR
            PsiElement(set)('set')
            PsiElement(LPAR)('(')
            VALUE_PARAMETER_LIST
              VALUE_PARAMETER
                PsiElement(IDENTIFIER)('S')
                PsiWhiteSpace(' ')
                PsiElement(COLON)(':')
                PsiWhiteSpace(' ')
                TYPE_REFERENCE
                  USER_TYPE
                    REFERENCE_EXPRESSION
                      PsiElement(IDENTIFIER)('s')
            PsiElement(RPAR)(')')
            PsiWhiteSpace(' ')
            BLOCK
              PsiElement(LBRACE)('{')
              PsiElement(RBRACE)('}')
        PsiWhiteSpace('\n\n\n    ')
        FUN
          MODIFIER_LIST
            PsiElement(public)('public')
            PsiWhiteSpace(' ')
            PsiElement(protected)('protected')
            PsiWhiteSpace(' ')
            PsiElement(private)('private')
            PsiWhiteSpace(' ')
            PsiElement(internal)('internal')
          PsiWhiteSpace('\n    ')
          PsiElement(fun)('fun')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('abstract')
          PsiWhiteSpace('  ')
          VALUE_PARAMETER_LIST
            PsiElement(LPAR)('(')
            PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('abstract')
        PsiWhiteSpace('\n    ')
        FUN
          PsiElement(fun)('fun')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('open')
          PsiWhiteSpace('   ')
          VALUE_PARAMETER_LIST
            PsiElement(LPAR)('(')
            PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('open')
        PsiWhiteSpace('\n    ')
        FUN
          PsiElement(fun)('fun')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('enum')
          PsiWhiteSpace('      ')
          VALUE_PARAMETER_LIST
            PsiElement(LPAR)('(')
            PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('enum')
        PsiWhiteSpace('\n    ')
        FUN
          PsiElement(fun)('fun')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('open')
          PsiWhiteSpace('      ')
          VALUE_PARAMETER_LIST
            PsiElement(LPAR)('(')
            PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('open')
        PsiWhiteSpace('\n    ')
        FUN
          PsiElement(fun)('fun')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('annotation')
          PsiWhiteSpace(' ')
          VALUE_PARAMETER_LIST
            PsiElement(LPAR)('(')
            PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('annotation')
        PsiWhiteSpace('\n    ')
        FUN
          PsiElement(fun)('fun')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('override')
          PsiWhiteSpace('  ')
          VALUE_PARAMETER_LIST
            PsiElement(LPAR)('(')
            PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('override')
        PsiWhiteSpace('\n    ')
        FUN
          PsiElement(fun)('fun')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('open')
          PsiWhiteSpace('   ')
          VALUE_PARAMETER_LIST
            PsiElement(LPAR)('(')
            PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('open')
        PsiWhiteSpace('\n    ')
        FUN
          PsiElement(fun)('fun')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('abstract')
          PsiWhiteSpace('  ')
          VALUE_PARAMETER_LIST
            PsiElement(LPAR)('(')
            PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('abstract')
        PsiWhiteSpace('\n    ')
        FUN
          PsiElement(fun)('fun')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('private')
          PsiWhiteSpace('   ')
          VALUE_PARAMETER_LIST
            PsiElement(LPAR)('(')
            PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('private')
        PsiWhiteSpace('\n    ')
        FUN
          PsiElement(fun)('fun')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('protected')
          PsiWhiteSpace(' ')
          VALUE_PARAMETER_LIST
            PsiElement(LPAR)('(')
            PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('protected')
        PsiWhiteSpace('\n    ')
        FUN
          PsiElement(fun)('fun')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('public')
          PsiWhiteSpace('    ')
          VALUE_PARAMETER_LIST
            PsiElement(LPAR)('(')
            PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('public')
        PsiWhiteSpace('\n    ')
        FUN
          PsiElement(fun)('fun')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('internal')
          PsiWhiteSpace('  ')
          VALUE_PARAMETER_LIST
            PsiElement(LPAR)('(')
            PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('internal')
        PsiWhiteSpace('\n    ')
        FUN
          PsiElement(fun)('fun')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('lazy')
          PsiWhiteSpace('      ')
          VALUE_PARAMETER_LIST
            PsiElement(LPAR)('(')
            PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('lazy')
        PsiWhiteSpace('\n    ')
        FUN
          PsiElement(fun)('fun')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('wraps')
          PsiWhiteSpace('     ')
          VALUE_PARAMETER_LIST
            PsiElement(LPAR)('(')
            PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('wraps')
        PsiWhiteSpace('\n    ')
        FUN
          PsiElement(fun)('fun')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('import')
          PsiWhiteSpace('    ')
          VALUE_PARAMETER_LIST
            PsiElement(LPAR)('(')
            PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('import')
        PsiWhiteSpace('\n    ')
        FUN
          PsiElement(fun)('fun')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('where')
          PsiWhiteSpace('     ')
          VALUE_PARAMETER_LIST
            PsiElement(LPAR)('(')
            PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('where')
        PsiWhiteSpace('\n    ')
        FUN
          PsiElement(fun)('fun')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('by')
          PsiWhiteSpace('        ')
          VALUE_PARAMETER_LIST
            PsiElement(LPAR)('(')
            PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('by')
        PsiWhiteSpace('\n    ')
        FUN
          PsiElement(fun)('fun')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('get')
          PsiWhiteSpace('       ')
          VALUE_PARAMETER_LIST
            PsiElement(LPAR)('(')
            PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('get')
        PsiWhiteSpace('\n    ')
        FUN
          PsiElement(fun)('fun')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('set')
          PsiWhiteSpace('       ')
          VALUE_PARAMETER_LIST
            PsiElement(LPAR)('(')
            PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('set')
        PsiWhiteSpace('\n    ')
        FUN
          PsiElement(fun)('fun')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('public')
          PsiWhiteSpace('    ')
          VALUE_PARAMETER_LIST
            PsiElement(LPAR)('(')
            PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('public')
        PsiWhiteSpace('\n    ')
        FUN
          PsiElement(fun)('fun')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('private')
          PsiWhiteSpace('   ')
          VALUE_PARAMETER_LIST
            PsiElement(LPAR)('(')
            PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('private')
        PsiWhiteSpace('\n    ')
        FUN
          PsiElement(fun)('fun')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('protected')
          PsiWhiteSpace(' ')
          VALUE_PARAMETER_LIST
            PsiElement(LPAR)('(')
            PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('protected')
        PsiWhiteSpace('\n    ')
        FUN
          PsiElement(fun)('fun')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('internal')
          PsiWhiteSpace('  ')
          VALUE_PARAMETER_LIST
            PsiElement(LPAR)('(')
            PsiElement(RPAR)(')')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('internal')
        PsiWhiteSpace('\n\n    ')
        FUN
          PsiElement(fun)('fun')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('test')
          VALUE_PARAMETER_LIST
            PsiElement(LPAR)('(')
            PsiWhiteSpace('\n        ')
            VALUE_PARAMETER
              PsiElement(IDENTIFIER)('abstract')
              PsiWhiteSpace('  ')
              PsiElement(COLON)(':')
              PsiWhiteSpace(' ')
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('t')
            PsiElement(COMMA)(',')
            PsiWhiteSpace('\n        ')
            VALUE_PARAMETER
              PsiElement(IDENTIFIER)('open')
              PsiWhiteSpace('   ')
              PsiElement(COLON)(':')
              PsiWhiteSpace(' ')
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('t')
            PsiElement(COMMA)(',')
            PsiWhiteSpace('\n        ')
            VALUE_PARAMETER
              PsiElement(IDENTIFIER)('enum')
              PsiWhiteSpace('      ')
              PsiElement(COLON)(':')
              PsiWhiteSpace(' ')
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('t')
            PsiElement(COMMA)(',')
            PsiWhiteSpace('\n        ')
            VALUE_PARAMETER
              PsiElement(IDENTIFIER)('open')
              PsiWhiteSpace('      ')
              PsiElement(COLON)(':')
              PsiWhiteSpace(' ')
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('t')
            PsiElement(COMMA)(',')
            PsiWhiteSpace('\n        ')
            VALUE_PARAMETER
              PsiElement(IDENTIFIER)('annotation')
              PsiWhiteSpace(' ')
              PsiElement(COLON)(':')
              PsiWhiteSpace(' ')
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('t')
            PsiElement(COMMA)(',')
            PsiWhiteSpace('\n        ')
            VALUE_PARAMETER
              PsiElement(IDENTIFIER)('override')
              PsiWhiteSpace('  ')
              PsiElement(COLON)(':')
              PsiWhiteSpace(' ')
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('t')
            PsiElement(COMMA)(',')
            PsiWhiteSpace('\n        ')
            VALUE_PARAMETER
              PsiElement(IDENTIFIER)('open')
              PsiWhiteSpace('   ')
              PsiElement(COLON)(':')
              PsiWhiteSpace(' ')
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('t')
            PsiElement(COMMA)(',')
            PsiWhiteSpace('\n        ')
            VALUE_PARAMETER
              PsiElement(IDENTIFIER)('abstract')
              PsiWhiteSpace('  ')
              PsiElement(COLON)(':')
              PsiWhiteSpace(' ')
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('t')
            PsiElement(COMMA)(',')
            PsiWhiteSpace('\n        ')
            VALUE_PARAMETER
              PsiElement(IDENTIFIER)('private')
              PsiWhiteSpace('   ')
              PsiElement(COLON)(':')
              PsiWhiteSpace(' ')
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('t')
            PsiElement(COMMA)(',')
            PsiWhiteSpace('\n        ')
            VALUE_PARAMETER
              PsiElement(IDENTIFIER)('protected')
              PsiWhiteSpace(' ')
              PsiElement(COLON)(':')
              PsiWhiteSpace(' ')
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('t')
            PsiElement(COMMA)(',')
            PsiWhiteSpace('\n        ')
            VALUE_PARAMETER
              PsiElement(IDENTIFIER)('public')
              PsiWhiteSpace('    ')
              PsiElement(COLON)(':')
              PsiWhiteSpace(' ')
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('t')
            PsiElement(COMMA)(',')
            PsiWhiteSpace('\n        ')
            VALUE_PARAMETER
              PsiElement(IDENTIFIER)('internal')
              PsiWhiteSpace('  ')
              PsiElement(COLON)(':')
              PsiWhiteSpace(' ')
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('t')
            PsiElement(COMMA)(',')
            PsiWhiteSpace('\n        ')
            VALUE_PARAMETER
              PsiElement(IDENTIFIER)('lazy')
              PsiWhiteSpace('      ')
              PsiElement(COLON)(':')
              PsiWhiteSpace(' ')
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('t')
            PsiElement(COMMA)(',')
            PsiWhiteSpace('\n        ')
            VALUE_PARAMETER
              PsiElement(IDENTIFIER)('wraps')
              PsiWhiteSpace('     ')
              PsiElement(COLON)(':')
              PsiWhiteSpace(' ')
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('t')
            PsiElement(COMMA)(',')
            PsiWhiteSpace('\n        ')
            VALUE_PARAMETER
              PsiElement(IDENTIFIER)('import')
              PsiWhiteSpace('    ')
              PsiElement(COLON)(':')
              PsiWhiteSpace(' ')
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('t')
            PsiElement(COMMA)(',')
            PsiWhiteSpace('\n        ')
            VALUE_PARAMETER
              PsiElement(IDENTIFIER)('where')
              PsiWhiteSpace('     ')
              PsiElement(COLON)(':')
              PsiWhiteSpace(' ')
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('t')
            PsiElement(COMMA)(',')
            PsiWhiteSpace('\n        ')
            VALUE_PARAMETER
              PsiElement(IDENTIFIER)('by')
              PsiWhiteSpace('        ')
              PsiElement(COLON)(':')
              PsiWhiteSpace(' ')
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('t')
            PsiElement(COMMA)(',')
            PsiWhiteSpace('\n        ')
            VALUE_PARAMETER
              PsiElement(IDENTIFIER)('get')
              PsiWhiteSpace('       ')
              PsiElement(COLON)(':')
              PsiWhiteSpace(' ')
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('t')
            PsiElement(COMMA)(',')
            PsiWhiteSpace('\n        ')
            VALUE_PARAMETER
              PsiElement(IDENTIFIER)('set')
              PsiWhiteSpace('       ')
              PsiElement(COLON)(':')
              PsiWhiteSpace(' ')
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('t')
            PsiElement(COMMA)(',')
            PsiWhiteSpace('\n        ')
            VALUE_PARAMETER
              PsiElement(IDENTIFIER)('public')
              PsiWhiteSpace('    ')
              PsiElement(COLON)(':')
              PsiWhiteSpace(' ')
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('t')
            PsiElement(COMMA)(',')
            PsiWhiteSpace('\n        ')
            VALUE_PARAMETER
              PsiElement(IDENTIFIER)('private')
              PsiWhiteSpace('   ')
              PsiElement(COLON)(':')
              PsiWhiteSpace(' ')
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('t')
            PsiElement(COMMA)(',')
            PsiWhiteSpace('\n        ')
            VALUE_PARAMETER
              PsiElement(IDENTIFIER)('protected')
              PsiWhiteSpace(' ')
              PsiElement(COLON)(':')
              PsiWhiteSpace(' ')
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('t')
            PsiElement(COMMA)(',')
            PsiWhiteSpace('\n        ')
            VALUE_PARAMETER
              PsiElement(IDENTIFIER)('internal')
              PsiWhiteSpace('  ')
              PsiElement(COLON)(':')
              PsiWhiteSpace(' ')
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('t')
            PsiElement(COMMA)(',')
            PsiWhiteSpace('\n    ')
            VALUE_PARAMETER
              MODIFIER_LIST
                PsiElement(public)('public')
                PsiWhiteSpace(' ')
                PsiElement(protected)('protected')
                PsiWhiteSpace(' ')
                PsiElement(private)('private')
                PsiWhiteSpace(' ')
                PsiElement(internal)('internal')
                PsiWhiteSpace(' ')
                PsiElement(abstract)('abstract')
                PsiWhiteSpace('\n    ')
                PsiElement(open)('open')
                PsiWhiteSpace('\n    ')
                PsiElement(enum)('enum')
                PsiWhiteSpace('\n    ')
                PsiElement(open)('open')
                PsiWhiteSpace('\n    ')
                PsiElement(annotation)('annotation')
                PsiWhiteSpace('\n    ')
                PsiElement(override)('override')
                PsiWhiteSpace('\n    ')
                PsiElement(open)('open')
                PsiWhiteSpace('\n    ')
                PsiElement(abstract)('abstract')
                PsiWhiteSpace('\n    ')
                PsiElement(private)('private')
                PsiWhiteSpace('\n    ')
                PsiElement(protected)('protected')
                PsiWhiteSpace('\n    ')
                PsiElement(public)('public')
                PsiWhiteSpace('\n    ')
                PsiElement(internal)('internal')
              PsiWhiteSpace(' ')
              PsiElement(IDENTIFIER)('open')
              PsiWhiteSpace(' ')
              PsiElement(COLON)(':')
              PsiWhiteSpace(' ')
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION
                    PsiElement(IDENTIFIER)('t')
            PsiWhiteSpace('\n\n     ')
            PsiElement(RPAR)(')')
        PsiWhiteSpace('\n\n')
        PsiElement(RBRACE)('}')
    PsiWhiteSpace('\n\n\n')
    CLASS
      PsiElement(class)('class')
      PsiWhiteSpace(' ')
      PsiElement(IDENTIFIER)('F')
      TYPE_PARAMETER_LIST
        <empty list>
      VALUE_PARAMETER_LIST
        PsiElement(LPAR)('(')
        VALUE_PARAMETER
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('foo')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('bar')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n        ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('abstract')
          PsiWhiteSpace('  ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('t')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n        ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('open')
          PsiWhiteSpace('   ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('t')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n        ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('enum')
          PsiWhiteSpace('      ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('t')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n        ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('open')
          PsiWhiteSpace('      ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('t')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n        ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('annotation')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('t')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n        ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('override')
          PsiWhiteSpace('  ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('t')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n        ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('open')
          PsiWhiteSpace('   ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('t')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n        ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('abstract')
          PsiWhiteSpace('  ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('t')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n        ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('private')
          PsiWhiteSpace('   ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('t')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n        ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('protected')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('t')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n        ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('public')
          PsiWhiteSpace('    ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('t')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n        ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('internal')
          PsiWhiteSpace('  ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('t')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n        ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('lazy')
          PsiWhiteSpace('      ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('t')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n        ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('wraps')
          PsiWhiteSpace('     ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('t')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n        ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('import')
          PsiWhiteSpace('    ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('t')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n        ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('where')
          PsiWhiteSpace('     ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('t')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n        ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('by')
          PsiWhiteSpace('        ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('t')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n        ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('get')
          PsiWhiteSpace('       ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('t')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n        ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('set')
          PsiWhiteSpace('       ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('t')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n        ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('public')
          PsiWhiteSpace('    ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('t')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n        ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('private')
          PsiWhiteSpace('   ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('t')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n        ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('protected')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('t')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n        ')
        VALUE_PARAMETER
          PsiElement(IDENTIFIER)('internal')
          PsiWhiteSpace('  ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('t')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n    ')
        VALUE_PARAMETER
          MODIFIER_LIST
            PsiElement(public)('public')
            PsiWhiteSpace(' ')
            PsiElement(protected)('protected')
            PsiWhiteSpace(' ')
            PsiElement(private)('private')
            PsiWhiteSpace(' ')
            PsiElement(internal)('internal')
            PsiWhiteSpace(' ')
            PsiElement(abstract)('abstract')
            PsiWhiteSpace('\n    ')
            PsiElement(open)('open')
            PsiWhiteSpace('\n    ')
            PsiElement(enum)('enum')
            PsiWhiteSpace('\n    ')
            PsiElement(open)('open')
            PsiWhiteSpace('\n    ')
            PsiElement(annotation)('annotation')
            PsiWhiteSpace('\n    ')
            PsiElement(override)('override')
            PsiWhiteSpace('\n    ')
            PsiElement(open)('open')
            PsiWhiteSpace('\n    ')
            PsiElement(abstract)('abstract')
            PsiWhiteSpace('\n    ')
            PsiElement(private)('private')
            PsiWhiteSpace('\n    ')
            PsiElement(protected)('protected')
            PsiWhiteSpace('\n    ')
            PsiElement(public)('public')
            PsiWhiteSpace('\n    ')
            PsiElement(internal)('internal')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('open')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('b')
        PsiWhiteSpace('\n')
        PsiElement(RPAR)(')')
      PsiWhiteSpace(' ')
      CLASS_BODY
        PsiElement(LBRACE)('{')
        PsiWhiteSpace('\n\n')
        PsiElement(RBRACE)('}')