JetFile: TypeConstraints.jet
  NAMESPACE
    CLASS
      PsiElement(class)('class')
      PsiWhiteSpace(' ')
      PsiElement(IDENTIFIER)('foo')
      TYPE_PARAMETER_LIST
        PsiElement(LT)('<')
        TYPE_PARAMETER
          PsiElement(IDENTIFIER)('T')
        PsiElement(GT)('>')
        PsiWhiteSpace(' ')
        PsiElement(where)('where')
        PsiWhiteSpace(' ')
        TYPE_CONSTRAINT_LIST
          TYPE_CONSTRAINT
            TYPE_REFERENCE
              USER_TYPE
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('T')
            PsiWhiteSpace(' ')
            PsiElement(COLON)(':')
            PsiWhiteSpace(' ')
            TYPE_REFERENCE
              USER_TYPE
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('T')
          PsiElement(COMMA)(',')
          PsiWhiteSpace(' ')
          TYPE_CONSTRAINT
            PsiElement(class)('class')
            PsiWhiteSpace(' ')
            PsiElement(object)('object')
            PsiWhiteSpace(' ')
            TYPE_REFERENCE
              USER_TYPE
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('T')
            PsiWhiteSpace(' ')
            PsiElement(COLON)(':')
            PsiWhiteSpace(' ')
            TYPE_REFERENCE
              USER_TYPE
                REFERENCE_EXPRESSION
                  PsiElement(IDENTIFIER)('T')
      PsiWhiteSpace(' ')
      CLASS_BODY
        PsiElement(LBRACE)('{')
        PsiWhiteSpace('\n\n')
        PsiElement(RBRACE)('}')