<NME> LetIn.txt
<BEF> Elm File
  ElmValueDeclaration(VALUE_DECLARATION)
    ElmFunctionDeclarationLeft(FUNCTION_DECLARATION_LEFT)
      PsiElement(LOWER_CASE_IDENTIFIER)('a')
    PsiWhiteSpace(' ')
    PsiElement(EQ)('=')
    PsiWhiteSpace('\n')
    PsiWhiteSpace('    ')
    ElmLetInExpr(LET_IN_EXPR)
      PsiElement(LET)('let')
      PsiWhiteSpace('\n')
      PsiElement(VIRTUAL_OPEN_SECTION)('        ')
      ElmValueDeclaration(VALUE_DECLARATION)
        ElmFunctionDeclarationLeft(FUNCTION_DECLARATION_LEFT)
          PsiElement(LOWER_CASE_IDENTIFIER)('x')
        PsiWhiteSpace(' ')
        PsiElement(EQ)('=')
        PsiWhiteSpace('\n')
        PsiWhiteSpace('            ')
        ElmNumberConstantExpr(NUMBER_CONSTANT_EXPR)
          PsiElement(NUMBER_LITERAL)('320')
      PsiElement(VIRTUAL_END_SECTION)('\n')
      PsiWhiteSpace('    ')
      PsiElement(IN)('in')
      PsiWhiteSpace('\n')
      PsiWhiteSpace('        ')
      ElmValueExpr(VALUE_EXPR)
        ElmValueQID(VALUE_QID)
          PsiElement(LOWER_CASE_IDENTIFIER)('x')
  PsiElement(VIRTUAL_END_DECL)('\n')
  PsiWhiteSpace('\n')
  ElmValueDeclaration(VALUE_DECLARATION)
    ElmFunctionDeclarationLeft(FUNCTION_DECLARATION_LEFT)
      PsiElement(LOWER_CASE_IDENTIFIER)('b')
    PsiWhiteSpace(' ')
    PsiElement(EQ)('=')
    PsiWhiteSpace('\n')
    PsiWhiteSpace('    ')
    ElmLetInExpr(LET_IN_EXPR)
      PsiElement(LET)('let')
      PsiWhiteSpace('\n')
      PsiElement(VIRTUAL_OPEN_SECTION)('        ')
      ElmValueDeclaration(VALUE_DECLARATION)
        ElmFunctionDeclarationLeft(FUNCTION_DECLARATION_LEFT)
          PsiElement(LOWER_CASE_IDENTIFIER)('x')
        PsiWhiteSpace(' ')
        PsiElement(EQ)('=')
        PsiWhiteSpace(' ')
        ElmNumberConstantExpr(NUMBER_CONSTANT_EXPR)
          PsiElement(NUMBER_LITERAL)('320')
      PsiElement(VIRTUAL_END_DECL)('\n')
      PsiWhiteSpace('        ')
      ElmValueDeclaration(VALUE_DECLARATION)
        ElmFunctionDeclarationLeft(FUNCTION_DECLARATION_LEFT)
          PsiElement(LOWER_CASE_IDENTIFIER)('y')
        PsiWhiteSpace(' ')
        PsiElement(EQ)('=')
        PsiWhiteSpace(' ')
        ElmNumberConstantExpr(NUMBER_CONSTANT_EXPR)
          PsiElement(NUMBER_LITERAL)('480')
      PsiElement(VIRTUAL_END_SECTION)('\n')
      PsiWhiteSpace('    ')
      PsiElement(IN)('in')
      PsiWhiteSpace('\n')
      PsiWhiteSpace('        ')
      ElmBinOpExpr(BIN_OP_EXPR)
        ElmValueExpr(VALUE_EXPR)
          ElmValueQID(VALUE_QID)
            PsiElement(LOWER_CASE_IDENTIFIER)('x')
        PsiWhiteSpace(' ')
        ElmOperator(OPERATOR)
          PsiElement(OPERATOR_IDENTIFIER)('+')
        PsiWhiteSpace(' ')
        ElmValueExpr(VALUE_EXPR)
          ElmValueQID(VALUE_QID)
            PsiElement(LOWER_CASE_IDENTIFIER)('y')
  PsiElement(VIRTUAL_END_DECL)('\n')
  PsiWhiteSpace('\n')
  ElmValueDeclaration(VALUE_DECLARATION)
    ElmFunctionDeclarationLeft(FUNCTION_DECLARATION_LEFT)
      PsiElement(LOWER_CASE_IDENTIFIER)('c')
    PsiWhiteSpace(' ')
    PsiElement(EQ)('=')
    PsiWhiteSpace('\n')
    PsiWhiteSpace('    ')
    ElmLetInExpr(LET_IN_EXPR)
      PsiElement(LET)('let')
      PsiWhiteSpace('\n')
      PsiElement(VIRTUAL_OPEN_SECTION)('        ')
      ElmValueDeclaration(VALUE_DECLARATION)
        ElmPattern(PATTERN)
          ElmTuplePattern(TUPLE_PATTERN)
            PsiElement(LEFT_PARENTHESIS)('(')
            ElmPattern(PATTERN)
              ElmLowerPattern(LOWER_PATTERN)
                PsiElement(LOWER_CASE_IDENTIFIER)('x')
            PsiElement(COMMA)(',')
            PsiWhiteSpace(' ')
            ElmPattern(PATTERN)
              ElmLowerPattern(LOWER_PATTERN)
                PsiElement(LOWER_CASE_IDENTIFIER)('y')
            PsiElement(RIGHT_PARENTHESIS)(')')
        PsiWhiteSpace(' ')
        PsiElement(EQ)('=')
        PsiWhiteSpace(' ')
        ElmTupleExpr(TUPLE_EXPR)
          PsiElement(LEFT_PARENTHESIS)('(')
          ElmNumberConstantExpr(NUMBER_CONSTANT_EXPR)
            PsiElement(NUMBER_LITERAL)('0')
          PsiElement(COMMA)(',')
          PsiWhiteSpace(' ')
          ElmNumberConstantExpr(NUMBER_CONSTANT_EXPR)
            PsiElement(NUMBER_LITERAL)('20')
          PsiElement(RIGHT_PARENTHESIS)(')')
      PsiElement(VIRTUAL_END_SECTION)('\n')
      PsiWhiteSpace('    ')
      PsiElement(IN)('in')
      PsiWhiteSpace('\n')
      PsiWhiteSpace('        ')
      ElmBinOpExpr(BIN_OP_EXPR)
        ElmValueExpr(VALUE_EXPR)
          ElmValueQID(VALUE_QID)
            PsiElement(LOWER_CASE_IDENTIFIER)('x')
        PsiWhiteSpace(' ')
        ElmOperator(OPERATOR)
          PsiElement(OPERATOR_IDENTIFIER)('+')
        PsiWhiteSpace(' ')
        ElmValueExpr(VALUE_EXPR)
          ElmValueQID(VALUE_QID)
            PsiElement(LOWER_CASE_IDENTIFIER)('y')
  PsiElement(VIRTUAL_END_DECL)('\n')
  PsiWhiteSpace('\n')
  ElmValueDeclaration(VALUE_DECLARATION)
    ElmFunctionDeclarationLeft(FUNCTION_DECLARATION_LEFT)
      PsiElement(LOWER_CASE_IDENTIFIER)('d')
    PsiWhiteSpace(' ')
    PsiElement(EQ)('=')
    PsiWhiteSpace('\n')
    PsiWhiteSpace('    ')
    ElmLetInExpr(LET_IN_EXPR)
      PsiElement(LET)('let')
      PsiElement(VIRTUAL_OPEN_SECTION)(' ')
      ElmValueDeclaration(VALUE_DECLARATION)
            ElmListOfOperands(LIST_OF_OPERANDS)
              ElmValueExpr(VALUE_EXPR)
                ElmValueQID(VALUE_QID)
                  PsiElement(LOWER_CASE_IDENTIFIER)('y')

<MSG> Fix parse bug when entire let-in declaration is on a single line

<DFF> @@ -144,4 +144,36 @@ Elm File
             ElmListOfOperands(LIST_OF_OPERANDS)
               ElmValueExpr(VALUE_EXPR)
                 ElmValueQID(VALUE_QID)
-                  PsiElement(LOWER_CASE_IDENTIFIER)('y')
\ No newline at end of file
+                  PsiElement(LOWER_CASE_IDENTIFIER)('y')
+  PsiWhiteSpace('\n')
+  PsiElement(VIRTUAL_END_DECL)('\n')
+  ElmValueDeclaration(VALUE_DECLARATION)
+    ElmFunctionDeclarationLeft(FUNCTION_DECLARATION_LEFT)
+      PsiElement(LOWER_CASE_IDENTIFIER)('d')
+    PsiWhiteSpace(' ')
+    PsiElement(EQ)('=')
+    PsiWhiteSpace('\n')
+    PsiWhiteSpace('    ')
+    ElmExpression(EXPRESSION)
+      ElmListOfOperands(LIST_OF_OPERANDS)
+        ElmLetIn(LET_IN)
+          PsiElement(LET)('let')
+          PsiWhiteSpace(' ')
+          ElmInnerValueDeclaration(INNER_VALUE_DECLARATION)
+            ElmFunctionDeclarationLeft(FUNCTION_DECLARATION_LEFT)
+              PsiElement(LOWER_CASE_IDENTIFIER)('x')
+            PsiWhiteSpace(' ')
+            PsiElement(EQ)('=')
+            PsiWhiteSpace(' ')
+            ElmExpression(EXPRESSION)
+              ElmListOfOperands(LIST_OF_OPERANDS)
+                PsiElement(NUMBER_LITERAL)('320')
+          PsiElement(VIRTUAL_END_SECTION)(' ')
+          PsiElement(IN)('in')
+          PsiWhiteSpace('\n')
+          PsiWhiteSpace('    ')
+          ElmExpression(EXPRESSION)
+            ElmListOfOperands(LIST_OF_OPERANDS)
+              ElmValueExpr(VALUE_EXPR)
+                ElmValueQID(VALUE_QID)
+                  PsiElement(LOWER_CASE_IDENTIFIER)('x')
\ No newline at end of file

Fix parse bug when entire let-in declaration is on a single line