<NME> TypeAnnotation.txt
<BEF> Elm File
  ElmTypeAnnotation(TYPE_ANNOTATION)
    PsiElement(LOWER_CASE_IDENTIFIER)('update')
    PsiWhiteSpace(' ')
    PsiElement(COLON)(':')
    PsiWhiteSpace(' ')
    ElmTypeExpression(TYPE_EXPRESSION)
      ElmTypeRef(TYPE_REF)
        ElmUpperCaseQID(UPPER_CASE_QID)
          PsiElement(UPPER_CASE_IDENTIFIER)('Msg')
      PsiWhiteSpace(' ')
      PsiElement(ARROW)('->')
      PsiWhiteSpace(' ')
      ElmTypeRef(TYPE_REF)
        ElmUpperCaseQID(UPPER_CASE_QID)
          PsiElement(UPPER_CASE_IDENTIFIER)('Foo')
          PsiElement(DOT)('.')
          PsiElement(UPPER_CASE_IDENTIFIER)('Model')
      PsiWhiteSpace(' ')
      PsiElement(ARROW)('->')
      PsiWhiteSpace(' ')
      ElmTupleType(TUPLE_TYPE)
        PsiElement(LEFT_PARENTHESIS)('(')
        ElmTypeExpression(TYPE_EXPRESSION)
          ElmTypeRef(TYPE_REF)
            ElmUpperCaseQID(UPPER_CASE_QID)
              PsiElement(UPPER_CASE_IDENTIFIER)('Foo')
              PsiElement(DOT)('.')
              PsiElement(UPPER_CASE_IDENTIFIER)('Model')
        PsiElement(COMMA)(',')
        PsiWhiteSpace(' ')
        ElmTypeExpression(TYPE_EXPRESSION)
          ElmTypeRef(TYPE_REF)
            ElmUpperCaseQID(UPPER_CASE_QID)
              PsiElement(UPPER_CASE_IDENTIFIER)('Cmd')
            PsiWhiteSpace(' ')
            ElmTypeRef(TYPE_REF)
              ElmUpperCaseQID(UPPER_CASE_QID)
                PsiElement(UPPER_CASE_IDENTIFIER)('Msg')
        PsiElement(RIGHT_PARENTHESIS)(')')
  PsiElement(VIRTUAL_END_DECL)('\n')
  PsiWhiteSpace('\n')
  ElmTypeAnnotation(TYPE_ANNOTATION)
    PsiElement(LOWER_CASE_IDENTIFIER)('map')
    PsiWhiteSpace(' ')
    PsiElement(COLON)(':')
    PsiWhiteSpace(' ')
    ElmTypeExpression(TYPE_EXPRESSION)
      PsiElement(LEFT_PARENTHESIS)('(')
      ElmTypeExpression(TYPE_EXPRESSION)
        ElmTypeVariable(TYPE_VARIABLE)
          PsiElement(LOWER_CASE_IDENTIFIER)('a')
        PsiWhiteSpace(' ')
        PsiElement(ARROW)('->')
        PsiWhiteSpace(' ')
        ElmTypeVariable(TYPE_VARIABLE)
          PsiElement(LOWER_CASE_IDENTIFIER)('b')
      PsiElement(RIGHT_PARENTHESIS)(')')
      PsiWhiteSpace(' ')
      PsiElement(ARROW)('->')
      PsiWhiteSpace(' ')
      ElmTypeRef(TYPE_REF)
        ElmUpperCaseQID(UPPER_CASE_QID)
          PsiElement(UPPER_CASE_IDENTIFIER)('List')
        PsiWhiteSpace(' ')
        ElmTypeVariable(TYPE_VARIABLE)
          PsiElement(LOWER_CASE_IDENTIFIER)('a')
      PsiWhiteSpace(' ')
      PsiElement(ARROW)('->')
      PsiWhiteSpace(' ')
      ElmTypeRef(TYPE_REF)
        ElmUpperCaseQID(UPPER_CASE_QID)
          PsiElement(UPPER_CASE_IDENTIFIER)('List')
        PsiWhiteSpace(' ')
        ElmTypeVariable(TYPE_VARIABLE)
          PsiElement(LOWER_CASE_IDENTIFIER)('b')
  PsiElement(VIRTUAL_END_DECL)('\n')
  PsiWhiteSpace('\n')
  ElmTypeAnnotation(TYPE_ANNOTATION)
    PsiElement(LOWER_CASE_IDENTIFIER)('titleOfThing')
    PsiWhiteSpace(' ')
    PsiElement(COLON)(':')
    PsiWhiteSpace(' ')
    ElmTypeExpression(TYPE_EXPRESSION)
      ElmRecordType(RECORD_TYPE)
        PsiElement(LEFT_BRACE)('{')
        PsiWhiteSpace(' ')
        PsiElement(LOWER_CASE_IDENTIFIER)('a')
        PsiWhiteSpace(' ')
        PsiElement(PIPE)('|')
        PsiWhiteSpace(' ')
        ElmFieldType(FIELD_TYPE)
          PsiElement(LOWER_CASE_IDENTIFIER)('title')
          PsiWhiteSpace(' ')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          ElmTypeExpression(TYPE_EXPRESSION)
            ElmTypeRef(TYPE_REF)
              ElmUpperCaseQID(UPPER_CASE_QID)
                PsiElement(UPPER_CASE_IDENTIFIER)('String')
        PsiWhiteSpace(' ')
        PsiElement(RIGHT_BRACE)('}')
      PsiWhiteSpace(' ')
      PsiElement(ARROW)('->')
      PsiWhiteSpace(' ')
      ElmTypeRef(TYPE_REF)
        ElmUpperCaseQID(UPPER_CASE_QID)
          PsiElement(UPPER_CASE_IDENTIFIER)('String')
  PsiElement(VIRTUAL_END_DECL)('\n')
  PsiWhiteSpace('\n')
  ElmTypeAnnotation(TYPE_ANNOTATION)
    PsiElement(LOWER_CASE_IDENTIFIER)('second')
    PsiWhiteSpace(' ')
    PsiElement(COLON)(':')
    PsiWhiteSpace(' ')
    ElmTypeExpression(TYPE_EXPRESSION)
      ElmTupleType(TUPLE_TYPE)
        PsiElement(LEFT_PARENTHESIS)('(')
        ElmTypeExpression(TYPE_EXPRESSION)
          ElmTypeVariable(TYPE_VARIABLE)
            PsiElement(LOWER_CASE_IDENTIFIER)('a')
        PsiElement(COMMA)(',')
        PsiWhiteSpace(' ')
        ElmTypeExpression(TYPE_EXPRESSION)
          ElmTypeVariable(TYPE_VARIABLE)
            PsiElement(LOWER_CASE_IDENTIFIER)('b')
        PsiElement(RIGHT_PARENTHESIS)(')')
      PsiWhiteSpace(' ')
      PsiElement(ARROW)('->')
      PsiWhiteSpace(' ')
      ElmTypeVariable(TYPE_VARIABLE)
        PsiElement(LOWER_CASE_IDENTIFIER)('b')

<MSG> Resolve references in record literal update expressions (#54)


<DFF> @@ -85,7 +85,8 @@ Elm File
       ElmRecordType(RECORD_TYPE)
         PsiElement(LEFT_BRACE)('{')
         PsiWhiteSpace(' ')
-        PsiElement(LOWER_CASE_IDENTIFIER)('a')
+        ElmRecordBaseIdentifier(RECORD_BASE_IDENTIFIER)
+          PsiElement(LOWER_CASE_IDENTIFIER)('a')
         PsiWhiteSpace(' ')
         PsiElement(PIPE)('|')
         PsiWhiteSpace(' ')

Resolve references in record literal update expressions (#54)