================================================================================
Record Merge
================================================================================

{ a = 1 } & { b = 2 }

--------------------------------------------------------------------------------

(term
  (uni_term
    (infix_expr
      (infix_expr
        (applicative
          (record_operand
            (atom
              (uni_record
                (record_last_field
                  (record_field
                    (field_path
                      (field_path_elem
                        (ident)))
                    (term
                      (uni_term
                        (infix_expr
                          (applicative
                            (record_operand
                              (atom
                                (num_literal))))))))))))))
      (infix_b_op_6)
      (infix_expr
        (applicative
          (record_operand
            (atom
              (uni_record
                (record_last_field
                  (record_field
                    (field_path
                      (field_path_elem
                        (ident)))
                    (term
                      (uni_term
                        (infix_expr
                          (applicative
                            (record_operand
                              (atom
                                (num_literal)))))))))))))))))

================================================================================
Record (empty)
================================================================================

{ }

--------------------------------------------------------------------------------

(term
  (uni_term
    (infix_expr
      (applicative
        (record_operand
          (atom
            (uni_record)))))))

================================================================================
Record
================================================================================

{
  a = 1,
  "c" = 3.14,
  x.y.z = "foo"
}

--------------------------------------------------------------------------------

(term
  (uni_term
    (infix_expr
      (applicative
        (record_operand
          (atom
            (uni_record
              (record_field
                (field_path
                  (field_path_elem
                    (ident)))
                (term
                  (uni_term
                    (infix_expr
                      (applicative
                        (record_operand
                          (atom
                            (num_literal))))))))
              (record_field
                (field_path
                  (field_path_elem
                    (str_chunks
                      (str_chunks_single
                        (chunk_literal_single
                          (str_literal))))))
                (term
                  (uni_term
                    (infix_expr
                      (applicative
                        (record_operand
                          (atom
                            (num_literal))))))))
              (record_last_field
                (record_field
                  (field_path
                    (field_path_elem
                      (ident))
                    (field_path_elem
                      (ident))
                    (field_path_elem
                      (ident)))
                  (term
                    (uni_term
                      (infix_expr
                        (applicative
                          (record_operand
                            (atom
                              (str_chunks
                                (str_chunks_single
                                  (chunk_literal_single
                                    (str_literal)))))))))))))))))))

================================================================================
Record with dangling comma
================================================================================

{
  a = 1,
  b = 2,
}

--------------------------------------------------------------------------------

(term
  (uni_term
    (infix_expr
      (applicative
        (record_operand
          (atom
            (uni_record
              (record_field
                (field_path
                  (field_path_elem
                    (ident)))
                (term
                  (uni_term
                    (infix_expr
                      (applicative
                        (record_operand
                          (atom
                            (num_literal))))))))
              (record_field
                (field_path
                  (field_path_elem
                    (ident)))
                (term
                  (uni_term
                    (infix_expr
                      (applicative
                        (record_operand
                          (atom
                            (num_literal)))))))))))))))
