FILE
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('f')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsBlockExprImpl(BLOCK_EXPR)
          RsBlockImpl(BLOCK)
            PsiElement({)('{')
            PsiWhiteSpace(' ')
            RsExprStmtImpl(EXPR_STMT)
              RsPathExprImpl(PATH_EXPR)
                RsPathImpl(PATH)
                  PsiElement(identifier)('foo')
            PsiWhiteSpace(' ')
            PsiElement(})('}')
      PsiWhiteSpace(' ')
      RsExprStmtImpl(EXPR_STMT)
        RsUnitExprImpl(UNIT_EXPR)
          PsiElement(()('(')
          PsiElement())(')')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsCallExprImpl(CALL_EXPR)
          RsParenExprImpl(PAREN_EXPR)
            PsiElement(()('(')
            RsBlockExprImpl(BLOCK_EXPR)
              RsBlockImpl(BLOCK)
                PsiElement({)('{')
                PsiWhiteSpace(' ')
                RsExprStmtImpl(EXPR_STMT)
                  RsPathExprImpl(PATH_EXPR)
                    RsPathImpl(PATH)
                      PsiElement(identifier)('foo')
                PsiWhiteSpace(' ')
                PsiElement(})('}')
            PsiElement())(')')
          PsiWhiteSpace(' ')
          RsValueArgumentListImpl(VALUE_ARGUMENT_LIST)
            PsiElement(()('(')
            PsiElement())(')')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsLetDeclImpl(LET_DECL)
        PsiElement(let)('let')
        PsiWhiteSpace(' ')
        RsPatWildImpl(PAT_WILD)
          PsiElement(_)('_')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        RsCallExprImpl(CALL_EXPR)
          RsBlockExprImpl(BLOCK_EXPR)
            RsBlockImpl(BLOCK)
              PsiElement({)('{')
              PsiWhiteSpace(' ')
              RsExprStmtImpl(EXPR_STMT)
                RsPathExprImpl(PATH_EXPR)
                  RsPathImpl(PATH)
                    PsiElement(identifier)('bar')
              PsiWhiteSpace(' ')
              PsiElement(})('}')
          RsValueArgumentListImpl(VALUE_ARGUMENT_LIST)
            PsiElement(()('(')
            PsiElement())(')')
        PsiElement(;)(';')
      PsiWhiteSpace('\n')
      PsiElement(})('}')
