anchor.diff:  Nonterminals
     grammar expr_list
  -  expr paren_expr block_expr fn_expr bracket_expr call_expr bracket_at_expr max_expr
  -  base_expr matched_expr matched_op_expr unmatched_expr op_expr
  +  expr paren_expr block_expr no_parens_expr identifier_expr max_expr bracket_expr
  +  bracket_at_expr base_expr matched_expr matched_op_expr unmatched_expr op_expr
     comp_op_eol at_op_eol unary_op_eol and_op_eol or_op_eol tail_op_eol
     add_op_eol mult_op_eol exp_op_eol two_op_eol type_op_eol stab_op_eol
     arrow_op_eol range_op_eol than_op_eol default_op_eol match_op_eol
  
positive.code: base_expr -> list_string : build_list_string('$1').
  base_expr -> bit_string : '$1'.
  base_expr -> '&' : { '&', [{line,?line('$1')}], ?exprs('$1') }.
  base_expr -> '...' : { ?id('$1'), [{line,?line('$1')}], [] }.
  base_expr -> sigil : build_sigil('$1').
  
  %% Blocks
  
negative.code: block_expr -> dot_do_identifier do_block : build_identifier('$1', '$2').
  block_expr -> dot_identifier call_args_no_parens_strict do_block : build_identifier('$1', '$2' ++ '$3').
  
  no_parens_expr -> dot_punctuated_identifier call_args_no_parens_strict : build_identifier('$1', '$2').
  no_parens_expr -> dot_op_identifier call_args_no_parens_strict : build_identifier('$1', '$2').
  no_parens_expr -> dot_identifier call_args_no_parens_strict : build_identifier('$1', '$2').
  no_parens_expr -> identifier_expr : '$1'.
  
  identifier_expr -> dot_punctuated_identifier : build_identifier('$1', []).
  identifier_expr -> dot_do_identifier : build_identifier('$1', nil).
  identifier_expr -> var : build_identifier('$1', nil).
  identifier_expr -> max_expr : '$1'.
  
  max_expr -> fn_eol stab end_eol : build_fn('$1', build_stab(lists:reverse('$2'))).
  max_expr -> open_paren stab close_paren : build_stab(lists:reverse('$2')).
  max_expr -> bracket_expr : '$1'.
  max_expr -> parens_call call_args_parens : build_identifier('$1', '$2').
  max_expr -> parens_call call_args_parens call_args_parens : build_nested_parens('$1', '$2', '$3').
  max_expr -> dot_alias : '$1'.
  max_expr -> base_expr : '$1'.
  
  bracket_expr -> dot_bracket_identifier bracket_access : build_access(build_identifier('$1', nil), '$2').
  bracket_expr -> max_expr bracket_access : build_access('$1', '$2').
  