JetFile: SoftKeywords.jet
  NAMESPACE_HEADER
    PsiElement(package)('package')
    PsiWhiteSpace(' ')
    REFERENCE_EXPRESSION
      PsiElement(IDENTIFIER)('foo')
    PsiElement(DOT)('.')
    REFERENCE_EXPRESSION
      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)('}')