anchor.diff:  % Function calls with no parentheses
   
   call_args_no_parens_expr -> matched_expr : '$1'.
  +call_args_no_parens_expr -> no_parens_one_ambig_expr : '$1'.
   call_args_no_parens_expr -> no_parens_expr : throw_no_parens_many_strict('$1').
   
   call_args_no_parens_comma_expr -> matched_expr ',' call_args_no_parens_expr : ['$3', '$1'].
  +call_args_no_parens_comma_expr -> no_parens_one_ambig_expr ',' call_args_no_parens_expr : ['$3', '$1'].
   call_args_no_parens_comma_expr -> call_args_no_parens_comma_expr ',' call_args_no_parens_expr : ['$3'|'$1'].
   
   call_args_no_parens_all -> call_args_no_parens_one : '$1'.
  +call_args_no_parens_all -> call_args_no_parens_one_ambig : '$1'.
   call_args_no_parens_all -> call_args_no_parens_many : '$1'.
   
   call_args_no_parens_one -> call_args_no_parens_kw : ['$1'].
   call_args_no_parens_one -> matched_expr : ['$1'].
  -call_args_no_parens_one -> no_parens_expr : ['$1'].
  +
  +call_args_no_parens_one_ambig -> no_parens_expr : ['$1'].
  +call_args_no_parens_one_ambig -> no_parens_one_ambig_expr : ['$1'].
   
   call_args_no_parens_many -> matched_expr ',' call_args_no_parens_kw : ['$1', '$3'].
   call_args_no_parens_many -> call_args_no_parens_comma_expr : reverse('$1').
  
positive.code: 
  expr -> matched_expr : '$1'.
  expr -> no_parens_expr : '$1'.
  expr -> unmatched_expr : '$1'.
  
  %% In Elixir we have three main call syntaxes: with parentheses,
  
negative.code: Nonterminals
    grammar expr_list
    expr container_expr block_expr access_expr
    no_parens_expr no_parens_one_expr no_parens_one_ambig_expr 
    bracket_expr bracket_at_expr bracket_arg matched_expr unmatched_expr max_expr
    op_expr matched_op_expr no_parens_op_expr
    comp_op_eol at_op_eol unary_op_eol and_op_eol or_op_eol capture_op_eol
  