FILE
  RsTraitItemImpl(TRAIT_ITEM)
    PsiElement(trait)('trait')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('T')
    PsiWhiteSpace(' ')
    RsMembersImpl(MEMBERS)
      PsiElement({)('{')
      PsiWhiteSpace('\n    ')
      RsTypeAliasImpl(TYPE_ALIAS)
        PsiElement(type)('type')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('A')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsTypeAliasImpl(TYPE_ALIAS)
        PsiElement(type)('type')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('B')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(Self)('Self')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsTypeAliasImpl(TYPE_ALIAS)
        PsiElement(type)('type')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('C')
        RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
          PsiElement(<)('<')
          RsTypeParameterImpl(TYPE_PARAMETER)
            PsiElement(identifier)('U')
          PsiElement(>)('>')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsTypeAliasImpl(TYPE_ALIAS)
        PsiElement(type)('type')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('D')
        RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
          PsiElement(<)('<')
          RsTypeParameterImpl(TYPE_PARAMETER)
            PsiElement(identifier)('U')
          PsiElement(>)('>')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('E')
            RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
              PsiElement(<)('<')
              RsPathTypeImpl(PATH_TYPE)
                RsPathImpl(PATH)
                  PsiElement(identifier)('U')
              PsiElement(>)('>')
        PsiElement(;)(';')
      PsiWhiteSpace('\n')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsStructItemImpl(STRUCT_ITEM)
    PsiElement(struct)('struct')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('S')
    PsiElement(;)(';')
  PsiWhiteSpace('\n\n')
  RsImplItemImpl(IMPL_ITEM)
    PsiElement(impl)('impl')
    PsiWhiteSpace(' ')
    RsTraitRefImpl(TRAIT_REF)
      RsPathImpl(PATH)
        PsiElement(identifier)('T')
    PsiWhiteSpace(' ')
    PsiElement(for)('for')
    PsiWhiteSpace(' ')
    RsPathTypeImpl(PATH_TYPE)
      RsPathImpl(PATH)
        PsiElement(identifier)('S')
    PsiWhiteSpace(' ')
    RsMembersImpl(MEMBERS)
      PsiElement({)('{')
      PsiWhiteSpace('\n    ')
      RsTypeAliasImpl(TYPE_ALIAS)
        PsiElement(type)('type')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('A')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('T')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsTypeAliasImpl(TYPE_ALIAS)
        PsiElement(type)('type')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('C')
        RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
          PsiElement(<)('<')
          RsTypeParameterImpl(TYPE_PARAMETER)
            PsiElement(identifier)('U')
          PsiElement(>)('>')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('T')
            RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
              PsiElement(<)('<')
              RsPathTypeImpl(PATH_TYPE)
                RsPathImpl(PATH)
                  PsiElement(identifier)('U')
              PsiElement(>)('>')
        PsiElement(;)(';')
      PsiWhiteSpace('\n')
      PsiElement(})('}')
