================================================
template functions vs relational expressions
================================================

int main() {
  someVariable < someValue > 0.0;
  someTemplate<Type1, Type2>(a, b);
}

---

(translation_unit (function_definition
  (type_identifier)
  (function_declarator (identifier) (parameter_list))
  (compound_statement
    (expression_statement
      (relational_expression (relational_expression (identifier) (identifier))
      (number_literal)))
    (expression_statement (call_expression
      (template_function
        (identifier)
        (template_argument_list
          (type_descriptor (type_identifier))
          (type_descriptor (type_identifier))))
      (argument_list
        (identifier)
        (identifier)))))))

================================================
template classes vs relational expressions
================================================

int main() {
  SomeTemplate<SomeType> someVariable = 1;
}

---

(translation_unit (function_definition
  (type_identifier)
  (function_declarator (identifier) (parameter_list))
  (compound_statement
    (declaration
      (template_type (type_identifier)
        (template_argument_list (type_descriptor (type_identifier))))
      (init_declarator (identifier) (number_literal))))))
