FILE
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('single_bound')
    RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
      PsiElement(<)('<')
      RsTypeParameterImpl(TYPE_PARAMETER)
        PsiElement(identifier)('T')
        RsTypeParamBoundsImpl(TYPE_PARAM_BOUNDS)
          PsiElement(:)(':')
          PsiWhiteSpace(' ')
          RsPolyboundImpl(POLYBOUND)
            RsBoundImpl(BOUND)
              RsTraitRefImpl(TRAIT_REF)
                RsPathImpl(PATH)
                  PsiElement(identifier)('Bar')
      PsiElement(>)('>')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('parenthesized_bound')
    RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
      PsiElement(<)('<')
      RsTypeParameterImpl(TYPE_PARAMETER)
        PsiElement(identifier)('T')
        RsTypeParamBoundsImpl(TYPE_PARAM_BOUNDS)
          PsiElement(:)(':')
          PsiWhiteSpace(' ')
          RsPolyboundImpl(POLYBOUND)
            PsiElement(()('(')
            RsBoundImpl(BOUND)
              RsTraitRefImpl(TRAIT_REF)
                RsPathImpl(PATH)
                  PsiElement(identifier)('Bar')
            PsiElement())(')')
      PsiElement(>)('>')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsStructItemImpl(STRUCT_ITEM)
    PsiElement(struct)('struct')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('QuestionBound')
    RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
      PsiElement(<)('<')
      RsTypeParameterImpl(TYPE_PARAMETER)
        PsiElement(identifier)('T')
        RsTypeParamBoundsImpl(TYPE_PARAM_BOUNDS)
          PsiElement(:)(':')
          PsiWhiteSpace(' ')
          RsPolyboundImpl(POLYBOUND)
            PsiElement(?)('?')
            RsBoundImpl(BOUND)
              RsTraitRefImpl(TRAIT_REF)
                RsPathImpl(PATH)
                  PsiElement(identifier)('Sized')
      PsiElement(>)('>')
    RsTupleFieldsImpl(TUPLE_FIELDS)
      PsiElement(()('(')
      RsTupleFieldDeclImpl(TUPLE_FIELD_DECL)
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('Unique')
            RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
              PsiElement(<)('<')
              RsPathTypeImpl(PATH_TYPE)
                RsPathImpl(PATH)
                  PsiElement(identifier)('T')
              PsiElement(>)('>')
      PsiElement())(')')
    PsiElement(;)(';')
  PsiWhiteSpace('\n\n')
  RsStructItemImpl(STRUCT_ITEM)
    PsiElement(struct)('struct')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('ParenthesizedQuestionBound')
    RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
      PsiElement(<)('<')
      RsTypeParameterImpl(TYPE_PARAMETER)
        PsiElement(identifier)('T')
        RsTypeParamBoundsImpl(TYPE_PARAM_BOUNDS)
          PsiElement(:)(':')
          PsiWhiteSpace(' ')
          RsPolyboundImpl(POLYBOUND)
            PsiElement(()('(')
            PsiElement(?)('?')
            RsBoundImpl(BOUND)
              RsTraitRefImpl(TRAIT_REF)
                RsPathImpl(PATH)
                  PsiElement(identifier)('Sized')
            PsiElement())(')')
      PsiElement(>)('>')
    RsTupleFieldsImpl(TUPLE_FIELDS)
      PsiElement(()('(')
      RsTupleFieldDeclImpl(TUPLE_FIELD_DECL)
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('Unique')
            RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
              PsiElement(<)('<')
              RsPathTypeImpl(PATH_TYPE)
                RsPathImpl(PATH)
                  PsiElement(identifier)('T')
              PsiElement(>)('>')
      PsiElement())(')')
    PsiElement(;)(';')
  PsiWhiteSpace('\n\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('multiple_bound')
    RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
      PsiElement(<)('<')
      RsTypeParameterImpl(TYPE_PARAMETER)
        PsiElement(identifier)('T')
        RsTypeParamBoundsImpl(TYPE_PARAM_BOUNDS)
          PsiElement(:)(':')
          PsiWhiteSpace(' ')
          RsPolyboundImpl(POLYBOUND)
            RsBoundImpl(BOUND)
              RsTraitRefImpl(TRAIT_REF)
                RsPathImpl(PATH)
                  PsiElement(identifier)('Bar')
          PsiWhiteSpace(' ')
          PsiElement(+)('+')
          PsiWhiteSpace(' ')
          RsPolyboundImpl(POLYBOUND)
            RsBoundImpl(BOUND)
              RsTraitRefImpl(TRAIT_REF)
                RsPathImpl(PATH)
                  PsiElement(identifier)('Baz')
      PsiElement(>)('>')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('parenthesized_multiple_bound')
    RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
      PsiElement(<)('<')
      RsTypeParameterImpl(TYPE_PARAMETER)
        PsiElement(identifier)('T')
        RsTypeParamBoundsImpl(TYPE_PARAM_BOUNDS)
          PsiElement(:)(':')
          PsiWhiteSpace(' ')
          RsPolyboundImpl(POLYBOUND)
            PsiElement(()('(')
            RsBoundImpl(BOUND)
              RsTraitRefImpl(TRAIT_REF)
                RsPathImpl(PATH)
                  PsiElement(identifier)('Bar')
            PsiElement())(')')
          PsiWhiteSpace(' ')
          PsiElement(+)('+')
          PsiWhiteSpace(' ')
          RsPolyboundImpl(POLYBOUND)
            PsiElement(()('(')
            RsBoundImpl(BOUND)
              RsTraitRefImpl(TRAIT_REF)
                RsPathImpl(PATH)
                  PsiElement(identifier)('Baz')
            PsiElement())(')')
      PsiElement(>)('>')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('lifetime_bound')
    RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
      PsiElement(<)('<')
      RsLifetimeParameterImpl(LIFETIME_PARAMETER)
        PsiElement(QUOTE_IDENTIFIER)(''a')
      PsiElement(,)(',')
      PsiWhiteSpace(' ')
      RsTypeParameterImpl(TYPE_PARAMETER)
        PsiElement(identifier)('T')
        RsTypeParamBoundsImpl(TYPE_PARAM_BOUNDS)
          PsiElement(:)(':')
          RsPolyboundImpl(POLYBOUND)
            RsBoundImpl(BOUND)
              RsLifetimeImpl(LIFETIME)
                PsiElement(QUOTE_IDENTIFIER)(''a')
      PsiElement(>)('>')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsFunctionImpl(FUNCTION)
    PsiComment(<EOL_COMMENT>)('// ('a) syntactically invalid')
    PsiWhiteSpace('\n')
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('parenthesized_lifetime_bound')
    RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
      PsiElement(<)('<')
      RsLifetimeParameterImpl(LIFETIME_PARAMETER)
        PsiElement(QUOTE_IDENTIFIER)(''a')
      PsiElement(,)(',')
      PsiWhiteSpace(' ')
      RsTypeParameterImpl(TYPE_PARAMETER)
        PsiElement(identifier)('T')
        RsTypeParamBoundsImpl(TYPE_PARAM_BOUNDS)
          PsiElement(:)(':')
          PsiWhiteSpace(' ')
          RsPolyboundImpl(POLYBOUND)
            PsiElement(()('(')
            RsBoundImpl(BOUND)
              RsLifetimeImpl(LIFETIME)
                PsiElement(QUOTE_IDENTIFIER)(''a')
            PsiElement())(')')
      PsiElement(>)('>')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('for_lifetime_bound')
    RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
      PsiElement(<)('<')
      RsTypeParameterImpl(TYPE_PARAMETER)
        PsiElement(identifier)('F')
      PsiElement(>)('>')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      RsValueParameterImpl(VALUE_PARAMETER)
        RsPatIdentImpl(PAT_IDENT)
          RsPatBindingImpl(PAT_BINDING)
            PsiElement(identifier)('f')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('F')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsWhereClauseImpl(WHERE_CLAUSE)
      PsiElement(where)('where')
      PsiWhiteSpace(' ')
      RsWherePredImpl(WHERE_PRED)
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('F')
        RsTypeParamBoundsImpl(TYPE_PARAM_BOUNDS)
          PsiElement(:)(':')
          PsiWhiteSpace(' ')
          RsPolyboundImpl(POLYBOUND)
            RsForLifetimesImpl(FOR_LIFETIMES)
              PsiElement(for)('for')
              PsiElement(<)('<')
              RsLifetimeParameterImpl(LIFETIME_PARAMETER)
                PsiElement(QUOTE_IDENTIFIER)(''a')
              PsiElement(>)('>')
            PsiWhiteSpace(' ')
            RsBoundImpl(BOUND)
              RsTraitRefImpl(TRAIT_REF)
                RsPathImpl(PATH)
                  PsiElement(identifier)('Fn')
                  RsValueParameterListImpl(VALUE_PARAMETER_LIST)
                    PsiElement(()('(')
                    RsValueParameterImpl(VALUE_PARAMETER)
                      RsRefLikeTypeImpl(REF_LIKE_TYPE)
                        PsiElement(&)('&')
                        RsLifetimeImpl(LIFETIME)
                          PsiElement(QUOTE_IDENTIFIER)(''a')
                        PsiWhiteSpace(' ')
                        RsPathTypeImpl(PATH_TYPE)
                          RsPathImpl(PATH)
                            PsiElement(identifier)('i32')
                    PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('parenthesized_for_lifetime_bound')
    RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
      PsiElement(<)('<')
      RsTypeParameterImpl(TYPE_PARAMETER)
        PsiElement(identifier)('F')
      PsiElement(>)('>')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      RsValueParameterImpl(VALUE_PARAMETER)
        RsPatIdentImpl(PAT_IDENT)
          RsPatBindingImpl(PAT_BINDING)
            PsiElement(identifier)('f')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('F')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsWhereClauseImpl(WHERE_CLAUSE)
      PsiElement(where)('where')
      PsiWhiteSpace(' ')
      RsWherePredImpl(WHERE_PRED)
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('F')
        RsTypeParamBoundsImpl(TYPE_PARAM_BOUNDS)
          PsiElement(:)(':')
          PsiWhiteSpace(' ')
          RsPolyboundImpl(POLYBOUND)
            PsiElement(()('(')
            RsForLifetimesImpl(FOR_LIFETIMES)
              PsiElement(for)('for')
              PsiElement(<)('<')
              RsLifetimeParameterImpl(LIFETIME_PARAMETER)
                PsiElement(QUOTE_IDENTIFIER)(''a')
              PsiElement(>)('>')
            PsiWhiteSpace(' ')
            RsBoundImpl(BOUND)
              RsTraitRefImpl(TRAIT_REF)
                RsPathImpl(PATH)
                  PsiElement(identifier)('Fn')
                  RsValueParameterListImpl(VALUE_PARAMETER_LIST)
                    PsiElement(()('(')
                    RsValueParameterImpl(VALUE_PARAMETER)
                      RsRefLikeTypeImpl(REF_LIKE_TYPE)
                        PsiElement(&)('&')
                        RsLifetimeImpl(LIFETIME)
                          PsiElement(QUOTE_IDENTIFIER)(''a')
                        PsiWhiteSpace(' ')
                        RsPathTypeImpl(PATH_TYPE)
                          RsPathImpl(PATH)
                            PsiElement(identifier)('i32')
                    PsiElement())(')')
            PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('const_trait_bound')
    RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
      PsiElement(<)('<')
      RsTypeParameterImpl(TYPE_PARAMETER)
        PsiElement(identifier)('T')
        RsTypeParamBoundsImpl(TYPE_PARAM_BOUNDS)
          PsiElement(:)(':')
          PsiWhiteSpace(' ')
          RsPolyboundImpl(POLYBOUND)
            RsTildeConstImpl(TILDE_CONST)
              PsiElement(~)('~')
              PsiElement(const)('const')
            PsiWhiteSpace(' ')
            RsBoundImpl(BOUND)
              RsTraitRefImpl(TRAIT_REF)
                RsPathImpl(PATH)
                  PsiElement(identifier)('Bar')
      PsiElement(>)('>')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('parenthesized_const_trait_bound')
    RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
      PsiElement(<)('<')
      RsTypeParameterImpl(TYPE_PARAMETER)
        PsiElement(identifier)('T')
        RsTypeParamBoundsImpl(TYPE_PARAM_BOUNDS)
          PsiElement(:)(':')
          PsiWhiteSpace(' ')
          RsPolyboundImpl(POLYBOUND)
            PsiElement(()('(')
            RsTildeConstImpl(TILDE_CONST)
              PsiElement(~)('~')
              PsiElement(const)('const')
            PsiWhiteSpace(' ')
            RsBoundImpl(BOUND)
              RsTraitRefImpl(TRAIT_REF)
                RsPathImpl(PATH)
                  PsiElement(identifier)('Bar')
            PsiElement())(')')
      PsiElement(>)('>')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('impl_bound')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsRetTypeImpl(RET_TYPE)
      PsiElement(->)('->')
      PsiWhiteSpace(' ')
      RsTraitTypeImpl(TRAIT_TYPE)
        PsiElement(impl)('impl')
        PsiWhiteSpace(' ')
        RsPolyboundImpl(POLYBOUND)
          RsBoundImpl(BOUND)
            RsTraitRefImpl(TRAIT_REF)
              RsPathImpl(PATH)
                PsiElement(identifier)('Bar')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('parenthesized_impl_bound')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsRetTypeImpl(RET_TYPE)
      PsiElement(->)('->')
      PsiWhiteSpace(' ')
      RsTraitTypeImpl(TRAIT_TYPE)
        PsiElement(impl)('impl')
        PsiWhiteSpace(' ')
        RsPolyboundImpl(POLYBOUND)
          PsiElement(()('(')
          RsBoundImpl(BOUND)
            RsTraitRefImpl(TRAIT_REF)
              RsPathImpl(PATH)
                PsiElement(identifier)('Bar')
          PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('impl_multiple_bound')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsRetTypeImpl(RET_TYPE)
      PsiElement(->)('->')
      PsiWhiteSpace(' ')
      RsTraitTypeImpl(TRAIT_TYPE)
        PsiElement(impl)('impl')
        PsiWhiteSpace(' ')
        RsPolyboundImpl(POLYBOUND)
          RsBoundImpl(BOUND)
            RsTraitRefImpl(TRAIT_REF)
              RsPathImpl(PATH)
                PsiElement(identifier)('Bar')
        PsiWhiteSpace(' ')
        PsiElement(+)('+')
        PsiWhiteSpace(' ')
        RsPolyboundImpl(POLYBOUND)
          RsBoundImpl(BOUND)
            RsTraitRefImpl(TRAIT_REF)
              RsPathImpl(PATH)
                PsiElement(identifier)('Baz')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('parenthesized_impl_multiple_bound')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsRetTypeImpl(RET_TYPE)
      PsiElement(->)('->')
      PsiWhiteSpace(' ')
      RsTraitTypeImpl(TRAIT_TYPE)
        PsiElement(impl)('impl')
        PsiWhiteSpace(' ')
        RsPolyboundImpl(POLYBOUND)
          PsiElement(()('(')
          RsBoundImpl(BOUND)
            RsTraitRefImpl(TRAIT_REF)
              RsPathImpl(PATH)
                PsiElement(identifier)('Bar')
          PsiElement())(')')
        PsiWhiteSpace(' ')
        PsiElement(+)('+')
        PsiWhiteSpace(' ')
        RsPolyboundImpl(POLYBOUND)
          PsiElement(()('(')
          RsBoundImpl(BOUND)
            RsTraitRefImpl(TRAIT_REF)
              RsPathImpl(PATH)
                PsiElement(identifier)('Baz')
          PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('dyn_bound')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      RsValueParameterImpl(VALUE_PARAMETER)
        RsPatIdentImpl(PAT_IDENT)
          RsPatBindingImpl(PAT_BINDING)
            PsiElement(identifier)('b')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsRefLikeTypeImpl(REF_LIKE_TYPE)
          PsiElement(&)('&')
          PsiElement(mut)('mut')
          PsiWhiteSpace(' ')
          RsTraitTypeImpl(TRAIT_TYPE)
            PsiElement(dyn_kw)('dyn')
            PsiWhiteSpace(' ')
            RsPolyboundImpl(POLYBOUND)
              RsBoundImpl(BOUND)
                RsTraitRefImpl(TRAIT_REF)
                  RsPathImpl(PATH)
                    PsiElement(identifier)('Bar')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('parenthesized_dyn_bound')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      RsValueParameterImpl(VALUE_PARAMETER)
        RsPatIdentImpl(PAT_IDENT)
          RsPatBindingImpl(PAT_BINDING)
            PsiElement(identifier)('b')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsRefLikeTypeImpl(REF_LIKE_TYPE)
          PsiElement(&)('&')
          PsiElement(mut)('mut')
          PsiWhiteSpace(' ')
          RsTraitTypeImpl(TRAIT_TYPE)
            PsiElement(dyn_kw)('dyn')
            PsiWhiteSpace(' ')
            RsPolyboundImpl(POLYBOUND)
              PsiElement(()('(')
              RsBoundImpl(BOUND)
                RsTraitRefImpl(TRAIT_REF)
                  RsPathImpl(PATH)
                    PsiElement(identifier)('Bar')
              PsiElement())(')')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('dyn_multiple_bound')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      RsValueParameterImpl(VALUE_PARAMETER)
        RsPatIdentImpl(PAT_IDENT)
          RsPatBindingImpl(PAT_BINDING)
            PsiElement(identifier)('b')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsRefLikeTypeImpl(REF_LIKE_TYPE)
          PsiElement(&)('&')
          PsiElement(mut)('mut')
          PsiWhiteSpace(' ')
          RsTraitTypeImpl(TRAIT_TYPE)
            PsiElement(dyn_kw)('dyn')
            PsiWhiteSpace(' ')
            RsPolyboundImpl(POLYBOUND)
              RsBoundImpl(BOUND)
                RsTraitRefImpl(TRAIT_REF)
                  RsPathImpl(PATH)
                    PsiElement(identifier)('Bar')
            PsiWhiteSpace(' ')
            PsiElement(+)('+')
            PsiWhiteSpace(' ')
            RsPolyboundImpl(POLYBOUND)
              RsBoundImpl(BOUND)
                RsTraitRefImpl(TRAIT_REF)
                  RsPathImpl(PATH)
                    PsiElement(identifier)('Baz')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('parenthesized_dyn_multiple_bound')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      RsValueParameterImpl(VALUE_PARAMETER)
        RsPatIdentImpl(PAT_IDENT)
          RsPatBindingImpl(PAT_BINDING)
            PsiElement(identifier)('b')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsRefLikeTypeImpl(REF_LIKE_TYPE)
          PsiElement(&)('&')
          PsiElement(mut)('mut')
          PsiWhiteSpace(' ')
          RsTraitTypeImpl(TRAIT_TYPE)
            PsiElement(dyn_kw)('dyn')
            PsiWhiteSpace(' ')
            RsPolyboundImpl(POLYBOUND)
              PsiElement(()('(')
              RsBoundImpl(BOUND)
                RsTraitRefImpl(TRAIT_REF)
                  RsPathImpl(PATH)
                    PsiElement(identifier)('Bar')
              PsiElement())(')')
            PsiWhiteSpace(' ')
            PsiElement(+)('+')
            PsiWhiteSpace(' ')
            RsPolyboundImpl(POLYBOUND)
              PsiElement(()('(')
              RsBoundImpl(BOUND)
                RsTraitRefImpl(TRAIT_REF)
                  RsPathImpl(PATH)
                    PsiElement(identifier)('Baz')
              PsiElement())(')')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('lifetime_bound_on_Fn_returning_reference')
    RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
      PsiElement(<)('<')
      RsLifetimeParameterImpl(LIFETIME_PARAMETER)
        PsiElement(QUOTE_IDENTIFIER)(''b')
      PsiElement(,)(',')
      PsiWhiteSpace(' ')
      RsTypeParameterImpl(TYPE_PARAMETER)
        PsiElement(identifier)('F')
      PsiElement(,)(',')
      PsiWhiteSpace(' ')
      RsTypeParameterImpl(TYPE_PARAMETER)
        PsiElement(identifier)('Z')
        RsTypeParamBoundsImpl(TYPE_PARAM_BOUNDS)
          PsiElement(:)(':')
          PsiWhiteSpace(' ')
          RsPolyboundImpl(POLYBOUND)
            RsBoundImpl(BOUND)
              RsLifetimeImpl(LIFETIME)
                PsiElement(QUOTE_IDENTIFIER)(''b')
      PsiElement(>)('>')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsWhereClauseImpl(WHERE_CLAUSE)
      PsiElement(where)('where')
      PsiWhiteSpace(' ')
      RsWherePredImpl(WHERE_PRED)
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('F')
        RsTypeParamBoundsImpl(TYPE_PARAM_BOUNDS)
          PsiElement(:)(':')
          PsiWhiteSpace(' ')
          RsPolyboundImpl(POLYBOUND)
            RsBoundImpl(BOUND)
              RsTraitRefImpl(TRAIT_REF)
                RsPathImpl(PATH)
                  PsiElement(identifier)('Fn')
                  RsValueParameterListImpl(VALUE_PARAMETER_LIST)
                    PsiElement(()('(')
                    PsiElement())(')')
                  PsiWhiteSpace(' ')
                  RsRetTypeImpl(RET_TYPE)
                    PsiElement(->)('->')
                    PsiWhiteSpace(' ')
                    RsRefLikeTypeImpl(REF_LIKE_TYPE)
                      PsiElement(&)('&')
                      RsLifetimeImpl(LIFETIME)
                        PsiElement(QUOTE_IDENTIFIER)(''b')
                      PsiWhiteSpace(' ')
                      RsPathTypeImpl(PATH_TYPE)
                        RsPathImpl(PATH)
                          PsiElement(identifier)('Z')
          PsiWhiteSpace(' ')
          PsiElement(+)('+')
          PsiWhiteSpace(' ')
          RsPolyboundImpl(POLYBOUND)
            RsBoundImpl(BOUND)
              RsLifetimeImpl(LIFETIME)
                PsiElement(QUOTE_IDENTIFIER)(''static')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('assoc_type_bounds1')
    RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
      PsiElement(<)('<')
      RsTypeParameterImpl(TYPE_PARAMETER)
        PsiElement(identifier)('T')
        RsTypeParamBoundsImpl(TYPE_PARAM_BOUNDS)
          PsiElement(:)(':')
          PsiWhiteSpace(' ')
          RsPolyboundImpl(POLYBOUND)
            RsBoundImpl(BOUND)
              RsTraitRefImpl(TRAIT_REF)
                RsPathImpl(PATH)
                  PsiElement(identifier)('Foo')
                  RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
                    PsiElement(<)('<')
                    RsAssocTypeBindingImpl(ASSOC_TYPE_BINDING)
                      RsPathImpl(PATH)
                        PsiElement(identifier)('Item')
                      PsiElement(:)(':')
                      PsiWhiteSpace(' ')
                      RsPolyboundImpl(POLYBOUND)
                        RsBoundImpl(BOUND)
                          RsTraitRefImpl(TRAIT_REF)
                            RsPathImpl(PATH)
                              PsiElement(identifier)('Bar')
                    PsiElement(>)('>')
      PsiElement(>)('>')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      RsValueParameterImpl(VALUE_PARAMETER)
        RsPatIdentImpl(PAT_IDENT)
          RsPatBindingImpl(PAT_BINDING)
            PsiElement(identifier)('t')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('T')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('assoc_type_bounds2')
    RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
      PsiElement(<)('<')
      RsTypeParameterImpl(TYPE_PARAMETER)
        PsiElement(identifier)('T')
        RsTypeParamBoundsImpl(TYPE_PARAM_BOUNDS)
          PsiElement(:)(':')
          PsiWhiteSpace(' ')
          RsPolyboundImpl(POLYBOUND)
            RsBoundImpl(BOUND)
              RsTraitRefImpl(TRAIT_REF)
                RsPathImpl(PATH)
                  PsiElement(identifier)('Foo')
                  RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
                    PsiElement(<)('<')
                    RsAssocTypeBindingImpl(ASSOC_TYPE_BINDING)
                      RsPathImpl(PATH)
                        PsiElement(identifier)('Item')
                      PsiElement(:)(':')
                      PsiWhiteSpace(' ')
                      RsPolyboundImpl(POLYBOUND)
                        RsBoundImpl(BOUND)
                          RsTraitRefImpl(TRAIT_REF)
                            RsPathImpl(PATH)
                              PsiElement(identifier)('Bar')
                      PsiElement(+)('+')
                      RsPolyboundImpl(POLYBOUND)
                        RsBoundImpl(BOUND)
                          RsTraitRefImpl(TRAIT_REF)
                            RsPathImpl(PATH)
                              PsiElement(identifier)('Baz')
                    PsiElement(>)('>')
      PsiElement(>)('>')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      RsValueParameterImpl(VALUE_PARAMETER)
        RsPatIdentImpl(PAT_IDENT)
          RsPatBindingImpl(PAT_BINDING)
            PsiElement(identifier)('t')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('T')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('assoc_type_bounds3')
    RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
      PsiElement(<)('<')
      RsTypeParameterImpl(TYPE_PARAMETER)
        PsiElement(identifier)('T')
        RsTypeParamBoundsImpl(TYPE_PARAM_BOUNDS)
          PsiElement(:)(':')
          PsiWhiteSpace(' ')
          RsPolyboundImpl(POLYBOUND)
            RsBoundImpl(BOUND)
              RsTraitRefImpl(TRAIT_REF)
                RsPathImpl(PATH)
                  PsiElement(identifier)('Foo')
                  RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
                    PsiElement(<)('<')
                    RsAssocTypeBindingImpl(ASSOC_TYPE_BINDING)
                      RsPathImpl(PATH)
                        PsiElement(identifier)('Item1')
                      PsiElement(:)(':')
                      PsiWhiteSpace(' ')
                      RsPolyboundImpl(POLYBOUND)
                        RsBoundImpl(BOUND)
                          RsTraitRefImpl(TRAIT_REF)
                            RsPathImpl(PATH)
                              PsiElement(identifier)('Bar')
                    PsiElement(,)(',')
                    PsiWhiteSpace(' ')
                    RsAssocTypeBindingImpl(ASSOC_TYPE_BINDING)
                      RsPathImpl(PATH)
                        PsiElement(identifier)('Item2')
                      PsiWhiteSpace(' ')
                      PsiElement(=)('=')
                      PsiWhiteSpace(' ')
                      RsUnitTypeImpl(UNIT_TYPE)
                        PsiElement(()('(')
                        PsiElement())(')')
                    PsiElement(>)('>')
      PsiElement(>)('>')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      RsValueParameterImpl(VALUE_PARAMETER)
        RsPatIdentImpl(PAT_IDENT)
          RsPatBindingImpl(PAT_BINDING)
            PsiElement(identifier)('t')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('T')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('assoc_type_bounds4')
    RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
      PsiElement(<)('<')
      RsTypeParameterImpl(TYPE_PARAMETER)
        PsiElement(identifier)('T')
        RsTypeParamBoundsImpl(TYPE_PARAM_BOUNDS)
          PsiElement(:)(':')
          PsiWhiteSpace(' ')
          RsPolyboundImpl(POLYBOUND)
            RsBoundImpl(BOUND)
              RsTraitRefImpl(TRAIT_REF)
                RsPathImpl(PATH)
                  PsiElement(identifier)('Foo')
                  RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
                    PsiElement(<)('<')
                    RsAssocTypeBindingImpl(ASSOC_TYPE_BINDING)
                      RsPathImpl(PATH)
                        PsiElement(identifier)('Item1')
                      PsiWhiteSpace(' ')
                      PsiElement(=)('=')
                      PsiWhiteSpace(' ')
                      RsUnitTypeImpl(UNIT_TYPE)
                        PsiElement(()('(')
                        PsiElement())(')')
                    PsiElement(,)(',')
                    PsiWhiteSpace(' ')
                    RsAssocTypeBindingImpl(ASSOC_TYPE_BINDING)
                      RsPathImpl(PATH)
                        PsiElement(identifier)('Item2')
                      PsiElement(:)(':')
                      PsiWhiteSpace(' ')
                      RsPolyboundImpl(POLYBOUND)
                        RsBoundImpl(BOUND)
                          RsTraitRefImpl(TRAIT_REF)
                            RsPathImpl(PATH)
                              PsiElement(identifier)('Bar')
                    PsiElement(>)('>')
      PsiElement(>)('>')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      RsValueParameterImpl(VALUE_PARAMETER)
        RsPatIdentImpl(PAT_IDENT)
          RsPatBindingImpl(PAT_BINDING)
            PsiElement(identifier)('t')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('T')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('assoc_type_bounds_in_args')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      RsValueParameterImpl(VALUE_PARAMETER)
        RsPatIdentImpl(PAT_IDENT)
          RsPatBindingImpl(PAT_BINDING)
            PsiElement(identifier)('t')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsRefLikeTypeImpl(REF_LIKE_TYPE)
          PsiElement(&)('&')
          RsTraitTypeImpl(TRAIT_TYPE)
            PsiElement(dyn_kw)('dyn')
            PsiWhiteSpace(' ')
            RsPolyboundImpl(POLYBOUND)
              RsBoundImpl(BOUND)
                RsTraitRefImpl(TRAIT_REF)
                  RsPathImpl(PATH)
                    PsiElement(identifier)('Foo')
                    RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
                      PsiElement(<)('<')
                      RsAssocTypeBindingImpl(ASSOC_TYPE_BINDING)
                        RsPathImpl(PATH)
                          PsiElement(identifier)('Item')
                        PsiElement(:)(':')
                        PsiWhiteSpace(' ')
                        RsPolyboundImpl(POLYBOUND)
                          RsBoundImpl(BOUND)
                            RsTraitRefImpl(TRAIT_REF)
                              RsPathImpl(PATH)
                                PsiElement(identifier)('Bar')
                      PsiElement(>)('>')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('gat_bounds1')
    RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
      PsiElement(<)('<')
      RsTypeParameterImpl(TYPE_PARAMETER)
        PsiElement(identifier)('T')
        RsTypeParamBoundsImpl(TYPE_PARAM_BOUNDS)
          PsiElement(:)(':')
          PsiWhiteSpace(' ')
          RsPolyboundImpl(POLYBOUND)
            RsBoundImpl(BOUND)
              RsTraitRefImpl(TRAIT_REF)
                RsPathImpl(PATH)
                  PsiElement(identifier)('Foo')
                  RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
                    PsiElement(<)('<')
                    RsAssocTypeBindingImpl(ASSOC_TYPE_BINDING)
                      RsPathImpl(PATH)
                        PsiElement(identifier)('Item')
                        RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
                          PsiElement(<)('<')
                          RsPathTypeImpl(PATH_TYPE)
                            RsPathImpl(PATH)
                              PsiElement(identifier)('T')
                          PsiElement(>)('>')
                      PsiElement(:)(':')
                      PsiWhiteSpace(' ')
                      RsPolyboundImpl(POLYBOUND)
                        RsBoundImpl(BOUND)
                          RsTraitRefImpl(TRAIT_REF)
                            RsPathImpl(PATH)
                              PsiElement(identifier)('Bar')
                    PsiElement(>)('>')
      PsiElement(>)('>')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      RsValueParameterImpl(VALUE_PARAMETER)
        RsPatIdentImpl(PAT_IDENT)
          RsPatBindingImpl(PAT_BINDING)
            PsiElement(identifier)('t')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('T')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('gat_bounds2')
    RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
      PsiElement(<)('<')
      RsTypeParameterImpl(TYPE_PARAMETER)
        PsiElement(identifier)('T')
        RsTypeParamBoundsImpl(TYPE_PARAM_BOUNDS)
          PsiElement(:)(':')
          PsiWhiteSpace(' ')
          RsPolyboundImpl(POLYBOUND)
            RsBoundImpl(BOUND)
              RsTraitRefImpl(TRAIT_REF)
                RsPathImpl(PATH)
                  PsiElement(identifier)('Foo')
                  RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
                    PsiElement(<)('<')
                    RsAssocTypeBindingImpl(ASSOC_TYPE_BINDING)
                      RsPathImpl(PATH)
                        PsiElement(identifier)('Item')
                        RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
                          PsiElement(<)('<')
                          RsPathTypeImpl(PATH_TYPE)
                            RsPathImpl(PATH)
                              PsiElement(identifier)('T')
                          PsiElement(>)('>')
                      PsiElement(:)(':')
                      PsiWhiteSpace(' ')
                      RsPolyboundImpl(POLYBOUND)
                        RsBoundImpl(BOUND)
                          RsTraitRefImpl(TRAIT_REF)
                            RsPathImpl(PATH)
                              PsiElement(identifier)('Bar')
                      PsiElement(+)('+')
                      RsPolyboundImpl(POLYBOUND)
                        RsBoundImpl(BOUND)
                          RsTraitRefImpl(TRAIT_REF)
                            RsPathImpl(PATH)
                              PsiElement(identifier)('Baz')
                    PsiElement(>)('>')
      PsiElement(>)('>')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      RsValueParameterImpl(VALUE_PARAMETER)
        RsPatIdentImpl(PAT_IDENT)
          RsPatBindingImpl(PAT_BINDING)
            PsiElement(identifier)('t')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('T')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('gat_bounds3')
    RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
      PsiElement(<)('<')
      RsTypeParameterImpl(TYPE_PARAMETER)
        PsiElement(identifier)('T')
        RsTypeParamBoundsImpl(TYPE_PARAM_BOUNDS)
          PsiElement(:)(':')
          PsiWhiteSpace(' ')
          RsPolyboundImpl(POLYBOUND)
            RsBoundImpl(BOUND)
              RsTraitRefImpl(TRAIT_REF)
                RsPathImpl(PATH)
                  PsiElement(identifier)('Foo')
                  RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
                    PsiElement(<)('<')
                    RsAssocTypeBindingImpl(ASSOC_TYPE_BINDING)
                      RsPathImpl(PATH)
                        PsiElement(identifier)('Item1')
                        RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
                          PsiElement(<)('<')
                          RsPathTypeImpl(PATH_TYPE)
                            RsPathImpl(PATH)
                              PsiElement(identifier)('T')
                          PsiElement(>)('>')
                      PsiElement(:)(':')
                      PsiWhiteSpace(' ')
                      RsPolyboundImpl(POLYBOUND)
                        RsBoundImpl(BOUND)
                          RsTraitRefImpl(TRAIT_REF)
                            RsPathImpl(PATH)
                              PsiElement(identifier)('Bar')
                    PsiElement(,)(',')
                    PsiWhiteSpace(' ')
                    RsAssocTypeBindingImpl(ASSOC_TYPE_BINDING)
                      RsPathImpl(PATH)
                        PsiElement(identifier)('Item2')
                        RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
                          PsiElement(<)('<')
                          RsPathTypeImpl(PATH_TYPE)
                            RsPathImpl(PATH)
                              PsiElement(identifier)('T')
                          PsiElement(>)('>')
                      PsiWhiteSpace(' ')
                      PsiElement(=)('=')
                      PsiWhiteSpace(' ')
                      RsUnitTypeImpl(UNIT_TYPE)
                        PsiElement(()('(')
                        PsiElement())(')')
                    PsiElement(>)('>')
      PsiElement(>)('>')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      RsValueParameterImpl(VALUE_PARAMETER)
        RsPatIdentImpl(PAT_IDENT)
          RsPatBindingImpl(PAT_BINDING)
            PsiElement(identifier)('t')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('T')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('gat_bounds4')
    RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
      PsiElement(<)('<')
      RsTypeParameterImpl(TYPE_PARAMETER)
        PsiElement(identifier)('T')
        RsTypeParamBoundsImpl(TYPE_PARAM_BOUNDS)
          PsiElement(:)(':')
          PsiWhiteSpace(' ')
          RsPolyboundImpl(POLYBOUND)
            RsBoundImpl(BOUND)
              RsTraitRefImpl(TRAIT_REF)
                RsPathImpl(PATH)
                  PsiElement(identifier)('Foo')
                  RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
                    PsiElement(<)('<')
                    RsAssocTypeBindingImpl(ASSOC_TYPE_BINDING)
                      RsPathImpl(PATH)
                        PsiElement(identifier)('Item1')
                        RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
                          PsiElement(<)('<')
                          RsPathTypeImpl(PATH_TYPE)
                            RsPathImpl(PATH)
                              PsiElement(identifier)('T')
                          PsiElement(>)('>')
                      PsiWhiteSpace(' ')
                      PsiElement(=)('=')
                      PsiWhiteSpace(' ')
                      RsUnitTypeImpl(UNIT_TYPE)
                        PsiElement(()('(')
                        PsiElement())(')')
                    PsiElement(,)(',')
                    PsiWhiteSpace(' ')
                    RsAssocTypeBindingImpl(ASSOC_TYPE_BINDING)
                      RsPathImpl(PATH)
                        PsiElement(identifier)('Item2')
                        RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
                          PsiElement(<)('<')
                          RsPathTypeImpl(PATH_TYPE)
                            RsPathImpl(PATH)
                              PsiElement(identifier)('T')
                          PsiElement(>)('>')
                      PsiElement(:)(':')
                      PsiWhiteSpace(' ')
                      RsPolyboundImpl(POLYBOUND)
                        RsBoundImpl(BOUND)
                          RsTraitRefImpl(TRAIT_REF)
                            RsPathImpl(PATH)
                              PsiElement(identifier)('Bar')
                    PsiElement(>)('>')
      PsiElement(>)('>')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      RsValueParameterImpl(VALUE_PARAMETER)
        RsPatIdentImpl(PAT_IDENT)
          RsPatBindingImpl(PAT_BINDING)
            PsiElement(identifier)('t')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('T')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
  PsiWhiteSpace('\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('gat_in_args')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      RsValueParameterImpl(VALUE_PARAMETER)
        RsPatIdentImpl(PAT_IDENT)
          RsPatBindingImpl(PAT_BINDING)
            PsiElement(identifier)('t')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsRefLikeTypeImpl(REF_LIKE_TYPE)
          PsiElement(&)('&')
          RsTraitTypeImpl(TRAIT_TYPE)
            PsiElement(dyn_kw)('dyn')
            PsiWhiteSpace(' ')
            RsPolyboundImpl(POLYBOUND)
              RsBoundImpl(BOUND)
                RsTraitRefImpl(TRAIT_REF)
                  RsPathImpl(PATH)
                    PsiElement(identifier)('Foo')
                    RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
                      PsiElement(<)('<')
                      RsAssocTypeBindingImpl(ASSOC_TYPE_BINDING)
                        RsPathImpl(PATH)
                          PsiElement(identifier)('Item')
                          RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
                            PsiElement(<)('<')
                            RsPathTypeImpl(PATH_TYPE)
                              RsPathImpl(PATH)
                                PsiElement(identifier)('T')
                            PsiElement(>)('>')
                        PsiElement(:)(':')
                        PsiWhiteSpace(' ')
                        RsPolyboundImpl(POLYBOUND)
                          RsBoundImpl(BOUND)
                            RsTraitRefImpl(TRAIT_REF)
                              RsPathImpl(PATH)
                                PsiElement(identifier)('Bar')
                      PsiElement(>)('>')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiElement(})('}')
