anchor.diff:  list_args -> container_args_base ',' : reverse('$1').
   list_args -> container_args_base ',' kw : reverse('$1', '$3').
   
  -list -> open_bracket ']' : build_list('$1', []).
  -list -> open_bracket list_args close_bracket : build_list('$1', '$2').
  +list -> open_bracket ']' : build_list('$1', [], '$2').
  +list -> open_bracket list_args close_bracket : build_list('$1', '$2', '$3').
   
   % Tuple
   
  -tuple -> open_curly '}' : build_tuple('$1', []).
  -tuple -> open_curly container_args close_curly :  build_tuple('$1', '$2').
  +tuple -> open_curly '}' : build_tuple('$1', [], '$2').
  +tuple -> open_curly container_args close_curly :  build_tuple('$1', '$2', '$3').
   
   % Bitstrings
   
  -bit_string -> open_bit '>>' : build_bit('$1', []).
  -bit_string -> open_bit container_args close_bit : build_bit('$1', '$2').
  +bit_string -> open_bit '>>' : build_bit('$1', [], '$2').
  +bit_string -> open_bit container_args close_bit : build_bit('$1', '$2', '$3').
   
   % Map and structs
   
  
positive.code: max_expr -> parens_call call_args_parens call_args_parens : build_nested_parens('$1', '$2', '$3').
  max_expr -> dot_alias : '$1'.
  
  bracket_arg -> open_bracket kw close_bracket : build_list('$1', '$2').
  bracket_arg -> open_bracket container_expr close_bracket : build_list('$1', '$2').
  bracket_arg -> open_bracket container_expr ',' close_bracket : build_list('$1', '$2').
  
  bracket_expr -> dot_bracket_identifier bracket_arg : build_access(build_identifier('$1', nil), '$2').
  bracket_expr -> access_expr bracket_arg : build_access('$1', '$2').
  
negative.code: map_op -> '%{}' : '$1'.
  map_op -> '%{}' eol : '$1'.
  
  map_close -> kw close_curly : {'$1', '$2'}.
  map_close -> assoc close_curly : {'$1', '$2'}.
  map_close -> assoc_base ',' kw close_curly : {reverse('$1', '$3'), '$4'}.
  
  map_args -> open_curly '}' : build_map('$1', [], '$2').
  map_args -> open_curly map_close : build_map('$1', element(1, '$2'), element(2, '$2')).
  map_args -> open_curly assoc_update close_curly : build_map_update('$1', '$2', '$3', []).
  map_args -> open_curly assoc_update ',' close_curly : build_map_update('$1', '$2', '$4', []).
  map_args -> open_curly assoc_update ',' map_close : build_map_update('$1', '$2', element(2, '$4'), element(1, '$4')).
  map_args -> open_curly assoc_update_kw close_curly : build_map_update('$1', '$2', '$3', []).
  
  struct_op -> '%' : '$1'.
  
  