<NME> IfElse.txt
<BEF> Elm File
  ElmValueDeclaration(VALUE_DECLARATION)
    ElmFunctionDeclarationLeft(FUNCTION_DECLARATION_LEFT)
      PsiElement(LOWER_CASE_IDENTIFIER)('f1')
    PsiWhiteSpace(' ')
    PsiElement(EQ)('=')
    PsiWhiteSpace(' ')
    ElmIfElseExpr(IF_ELSE_EXPR)
      PsiElement(IF)('if')
      PsiErrorElement:<expr> expected
        <empty list>
  PsiElement(VIRTUAL_END_DECL)('\n')
  PsiWhiteSpace('\n')
  ElmValueDeclaration(VALUE_DECLARATION)
    ElmFunctionDeclarationLeft(FUNCTION_DECLARATION_LEFT)
      PsiElement(LOWER_CASE_IDENTIFIER)('f2')
    PsiWhiteSpace(' ')
    PsiElement(EQ)('=')
    PsiWhiteSpace(' ')
    ElmIfElseExpr(IF_ELSE_EXPR)
      PsiElement(IF)('if')
      PsiWhiteSpace(' ')
      ElmValueExpr(VALUE_EXPR)
        ElmValueQID(VALUE_QID)
          PsiElement(LOWER_CASE_IDENTIFIER)('x')
      PsiErrorElement:<expr>, OPERATOR_IDENTIFIER or THEN expected
        <empty list>
  PsiElement(VIRTUAL_END_DECL)('\n')
  PsiWhiteSpace('\n')
  ElmValueDeclaration(VALUE_DECLARATION)
    ElmFunctionDeclarationLeft(FUNCTION_DECLARATION_LEFT)
      PsiElement(LOWER_CASE_IDENTIFIER)('f3')
    PsiWhiteSpace(' ')
    PsiElement(EQ)('=')
    PsiWhiteSpace(' ')
    ElmIfElseExpr(IF_ELSE_EXPR)
      PsiElement(IF)('if')
      PsiWhiteSpace(' ')
      ElmValueExpr(VALUE_EXPR)
        ElmValueQID(VALUE_QID)
          PsiElement(LOWER_CASE_IDENTIFIER)('x')
      PsiWhiteSpace(' ')
      PsiElement(THEN)('then')
      PsiErrorElement:<expr> expected, got 'type'
        <empty list>
  PsiWhiteSpace('\n')
  PsiWhiteSpace('        ')
  PsiElement(TYPE)('type')
  PsiWhiteSpace(' ')
  PsiElement(ALIAS)('alias')
  PsiWhiteSpace(' ')
  PsiElement(UPPER_CASE_IDENTIFIER)('Garbage')
  PsiWhiteSpace('\n')
  PsiWhiteSpace('     ')
  PsiElement(ELSE)('else')
  PsiWhiteSpace('\n')
  PsiWhiteSpace('        ')
  PsiElement(NUMBER_LITERAL)('42')
  PsiElement(VIRTUAL_END_DECL)('\n')
  PsiWhiteSpace('\n')
  ElmValueDeclaration(VALUE_DECLARATION)
    ElmFunctionDeclarationLeft(FUNCTION_DECLARATION_LEFT)
      PsiElement(LOWER_CASE_IDENTIFIER)('f4')
    PsiWhiteSpace(' ')
    PsiElement(EQ)('=')
    PsiWhiteSpace(' ')
    ElmIfElseExpr(IF_ELSE_EXPR)
      PsiElement(IF)('if')
      PsiWhiteSpace(' ')
      ElmValueExpr(VALUE_EXPR)
        ElmValueQID(VALUE_QID)
          PsiElement(LOWER_CASE_IDENTIFIER)('x')
      PsiWhiteSpace(' ')
      PsiElement(THEN)('then')
      PsiWhiteSpace(' ')
      ElmNumberConstantExpr(NUMBER_CONSTANT_EXPR)
        PsiElement(NUMBER_LITERAL)('42')
      PsiWhiteSpace('\n')
      PsiWhiteSpace('     ')
      PsiElement(ELSE)('else')
      PsiErrorElement:<expr> or IF expected, got 'type'
        <empty list>
  PsiWhiteSpace(' ')
  PsiElement(TYPE)('type')
  PsiWhiteSpace(' ')
  PsiElement(ALIAS)('alias')
  PsiWhiteSpace(' ')
        PsiWhiteSpace('\n')
        PsiWhiteSpace('     ')
        PsiElement(ELSE)('else')
        PsiErrorElement:<expression> expected, got 'type'
          <empty list>
  PsiWhiteSpace(' ')
  PsiElement(TYPE)('type')

<MSG> Add type inference (#100)


<DFF> @@ -88,7 +88,7 @@ Elm File
         PsiWhiteSpace('\n')
         PsiWhiteSpace('     ')
         PsiElement(ELSE)('else')
-        PsiErrorElement:<expression> expected, got 'type'
+        PsiErrorElement:<expression> or IF expected, got 'type'
           <empty list>
   PsiWhiteSpace(' ')
   PsiElement(TYPE)('type')

Add type inference (#100)