FILE
  RsTypeAliasImpl(TYPE_ALIAS)
    PsiElement(type)('type')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('T')
    PsiWhiteSpace(' ')
    PsiElement(=)('=')
    PsiWhiteSpace(' ')
    RsPathTypeImpl(PATH_TYPE)
      RsPathImpl(PATH)
        PsiElement(identifier)('Box')
        RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
          PsiElement(<)('<')
          RsFnPointerTypeImpl(FN_POINTER_TYPE)
            PsiElement(fn)('fn')
            PsiErrorElement:'(' expected, got '>'
              <empty list>
          PsiElement(>)('>')
    PsiElement(;)(';')
  PsiWhiteSpace('\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('f')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      RsValueParameterImpl(VALUE_PARAMETER)
        RsPatWildImpl(PAT_WILD)
          PsiElement(_)('_')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsFnPointerTypeImpl(FN_POINTER_TYPE)
          PsiElement(fn)('fn')
          PsiErrorElement:'(' expected, got ')'
            <empty list>
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiWhiteSpace('\n    ')
      RsLetDeclImpl(LET_DECL)
        PsiElement(let)('let')
        PsiWhiteSpace(' ')
        RsPatIdentImpl(PAT_IDENT)
          RsPatBindingImpl(PAT_BINDING)
            PsiElement(identifier)('x')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsFnPointerTypeImpl(FN_POINTER_TYPE)
          PsiElement(fn)('fn')
          PsiErrorElement:'(' expected, got ';'
            <empty list>
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsLetDeclImpl(LET_DECL)
        PsiElement(let)('let')
        PsiWhiteSpace(' ')
        RsPatIdentImpl(PAT_IDENT)
          RsPatBindingImpl(PAT_BINDING)
            PsiElement(identifier)('x')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsFnPointerTypeImpl(FN_POINTER_TYPE)
          PsiElement(fn)('fn')
          RsValueParameterListImpl(VALUE_PARAMETER_LIST)
            PsiElement(()('(')
            PsiErrorElement:')' or <anon parameter> expected, got ';'
              <empty list>
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsLetDeclImpl(LET_DECL)
        PsiElement(let)('let')
        PsiWhiteSpace(' ')
        RsPatWildImpl(PAT_WILD)
          PsiElement(_)('_')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        RsLambdaExprImpl(LAMBDA_EXPR)
          RsValueParameterListImpl(VALUE_PARAMETER_LIST)
            PsiElement(|)('|')
            RsValueParameterImpl(VALUE_PARAMETER)
              RsPatIdentImpl(PAT_IDENT)
                RsPatBindingImpl(PAT_BINDING)
                  PsiElement(identifier)('f')
              PsiElement(:)(':')
              PsiWhiteSpace(' ')
              RsFnPointerTypeImpl(FN_POINTER_TYPE)
                PsiElement(fn)('fn')
                PsiErrorElement:'(' expected, got '|'
                  <empty list>
            PsiElement(|)('|')
          PsiWhiteSpace(' ')
          RsUnitExprImpl(UNIT_EXPR)
            PsiElement(()('(')
            PsiElement())(')')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsLetDeclImpl(LET_DECL)
        PsiElement(let)('let')
        PsiWhiteSpace(' ')
        RsPatWildImpl(PAT_WILD)
          PsiElement(_)('_')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        RsLambdaExprImpl(LAMBDA_EXPR)
          RsValueParameterListImpl(VALUE_PARAMETER_LIST)
            PsiElement(|)('|')
            RsValueParameterImpl(VALUE_PARAMETER)
              RsPatIdentImpl(PAT_IDENT)
                RsPatBindingImpl(PAT_BINDING)
                  PsiElement(identifier)('f')
              PsiElement(:)(':')
              PsiWhiteSpace(' ')
              RsFnPointerTypeImpl(FN_POINTER_TYPE)
                PsiElement(fn)('fn')
                RsValueParameterListImpl(VALUE_PARAMETER_LIST)
                  PsiElement(()('(')
                  PsiErrorElement:')' or <anon parameter> expected, got '|'
                    <empty list>
            PsiElement(|)('|')
          PsiWhiteSpace(' ')
          RsUnitExprImpl(UNIT_EXPR)
            PsiElement(()('(')
            PsiElement())(')')
        PsiElement(;)(';')
      PsiWhiteSpace('\n')
      PsiElement(})('}')
