<NME> Tuples.txt
<BEF> Elm File
  ElmValueDeclaration(VALUE_DECLARATION)
    ElmFunctionDeclarationLeft(FUNCTION_DECLARATION_LEFT)
      PsiElement(LOWER_CASE_IDENTIFIER)('a')
    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)('0')
      PsiElement(RIGHT_PARENTHESIS)(')')
  PsiElement(VIRTUAL_END_DECL)('\n')
  ElmValueDeclaration(VALUE_DECLARATION)
    ElmFunctionDeclarationLeft(FUNCTION_DECLARATION_LEFT)
      PsiElement(LOWER_CASE_IDENTIFIER)('b')
    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)('0')
      PsiElement(COMMA)(',')
      PsiWhiteSpace(' ')
      ElmNumberConstantExpr(NUMBER_CONSTANT_EXPR)
        PsiElement(NUMBER_LITERAL)('0')
      PsiElement(RIGHT_PARENTHESIS)(')')
  PsiElement(VIRTUAL_END_DECL)('\n')
  ElmValueDeclaration(VALUE_DECLARATION)
    ElmFunctionDeclarationLeft(FUNCTION_DECLARATION_LEFT)
      PsiElement(LOWER_CASE_IDENTIFIER)('c')
    PsiWhiteSpace(' ')
    PsiElement(EQ)('=')
    PsiWhiteSpace(' ')
    ElmTupleExpr(TUPLE_EXPR)
      PsiElement(LEFT_PARENTHESIS)('(')
      ElmTupleExpr(TUPLE_EXPR)
        PsiElement(LEFT_PARENTHESIS)('(')
        ElmNumberConstantExpr(NUMBER_CONSTANT_EXPR)
          PsiElement(NUMBER_LITERAL)('0')
        PsiElement(COMMA)(',')
        ElmNumberConstantExpr(NUMBER_CONSTANT_EXPR)
          PsiElement(NUMBER_LITERAL)('0')
        PsiElement(RIGHT_PARENTHESIS)(')')
      PsiElement(COMMA)(',')
      PsiWhiteSpace(' ')
      ElmTupleExpr(TUPLE_EXPR)
        PsiElement(LEFT_PARENTHESIS)('(')
        ElmNumberConstantExpr(NUMBER_CONSTANT_EXPR)
          PsiElement(NUMBER_LITERAL)('1')
        PsiElement(COMMA)(',')
        ElmNumberConstantExpr(NUMBER_CONSTANT_EXPR)
          PsiElement(NUMBER_LITERAL)('1')
        PsiElement(RIGHT_PARENTHESIS)(')')
      PsiElement(RIGHT_PARENTHESIS)(')')
  PsiElement(VIRTUAL_END_DECL)('\n')
  ElmValueDeclaration(VALUE_DECLARATION)
    ElmFunctionDeclarationLeft(FUNCTION_DECLARATION_LEFT)
      PsiElement(LOWER_CASE_IDENTIFIER)('d')
      PsiWhiteSpace(' ')
      ElmLowerPattern(LOWER_PATTERN)
        PsiElement(LOWER_CASE_IDENTIFIER)('x')
    PsiWhiteSpace(' ')
    PsiElement(EQ)('=')
    PsiWhiteSpace(' ')
    ElmTupleExpr(TUPLE_EXPR)
      PsiElement(LEFT_PARENTHESIS)('(')
      ElmNegateExpr(NEGATE_EXPR)
        PsiElement(OPERATOR_IDENTIFIER)('-')
        ElmValueExpr(VALUE_EXPR)
          ElmValueQID(VALUE_QID)
            PsiElement(LOWER_CASE_IDENTIFIER)('x')
      PsiElement(COMMA)(',')
          PsiElement(RIGHT_PARENTHESIS)(')')
  PsiElement(VIRTUAL_END_DECL)('\n')
  PsiWhiteSpace('\n')
  ElmValueDeclaration(VALUE_DECLARATION)
    ElmFunctionDeclarationLeft(FUNCTION_DECLARATION_LEFT)
      PsiElement(LOWER_CASE_IDENTIFIER)('unit')

<MSG> Keep 0.18 support (#64)

* Support 0.18 elm-lang/core package location
* Allow Elm 0.18 Native refs
* Allow Elm 0.18 operator declarations
* Allow Elm 0.18 implicit global values and types
* Allow Elm 0.18 tuple constructors
* Allow Elm 0.18 character literal binary escapes
* Allow Elm 0.18 elm-package.json files to be attached to the project

<DFF> @@ -83,6 +83,36 @@ Elm File
           PsiElement(RIGHT_PARENTHESIS)(')')
   PsiElement(VIRTUAL_END_DECL)('\n')
   PsiWhiteSpace('\n')
+  PsiComment(LINE_COMMENT)('-- TODO [drop 0.18] remove these tuple constructor examples')
+  PsiWhiteSpace('\n')
+  ElmValueDeclaration(VALUE_DECLARATION)
+    ElmFunctionDeclarationLeft(FUNCTION_DECLARATION_LEFT)
+      PsiElement(LOWER_CASE_IDENTIFIER)('pairConstructor')
+    PsiWhiteSpace(' ')
+    PsiElement(EQ)('=')
+    PsiWhiteSpace(' ')
+    ElmExpression(EXPRESSION)
+      ElmListOfOperands(LIST_OF_OPERANDS)
+        ElmTupleConstructor(TUPLE_CONSTRUCTOR)
+          PsiElement(LEFT_PARENTHESIS)('(')
+          PsiElement(COMMA)(',')
+          PsiElement(RIGHT_PARENTHESIS)(')')
+  PsiElement(VIRTUAL_END_DECL)('\n')
+  ElmValueDeclaration(VALUE_DECLARATION)
+    ElmFunctionDeclarationLeft(FUNCTION_DECLARATION_LEFT)
+      PsiElement(LOWER_CASE_IDENTIFIER)('tripletConstructor')
+    PsiWhiteSpace(' ')
+    PsiElement(EQ)('=')
+    PsiWhiteSpace(' ')
+    ElmExpression(EXPRESSION)
+      ElmListOfOperands(LIST_OF_OPERANDS)
+        ElmTupleConstructor(TUPLE_CONSTRUCTOR)
+          PsiElement(LEFT_PARENTHESIS)('(')
+          PsiElement(COMMA)(',')
+          PsiElement(COMMA)(',')
+          PsiElement(RIGHT_PARENTHESIS)(')')
+  PsiElement(VIRTUAL_END_DECL)('\n')
+  PsiWhiteSpace('\n')
   ElmValueDeclaration(VALUE_DECLARATION)
     ElmFunctionDeclarationLeft(FUNCTION_DECLARATION_LEFT)
       PsiElement(LOWER_CASE_IDENTIFIER)('unit')

Keep 0.18 support (#64)