anchor.diff:  
   % Lists
   
  +list_args -> kw : '$1'.
  +list_args -> container_args_base : reverse('$1').
  +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 kw_base close_bracket : build_list('$1', reverse('$2')).
  -list -> open_bracket container_args_base close_bracket : build_list('$1', reverse('$2')).
  -list -> open_bracket container_args_base ',' kw_base close_bracket : build_list('$1', reverse('$2', reverse('$4'))).
  +list -> open_bracket list_args close_bracket : build_list('$1', '$2').
   
   % Tuple
   
   tuple -> open_curly '}' : build_tuple('$1', []).
  -tuple -> open_curly kw_base close_curly :  build_tuple('$1', [reverse('$2')]).
  -tuple -> open_curly container_args_base close_curly : build_tuple('$1', reverse('$2')).
  -tuple -> open_curly container_args_base ',' kw_base close_curly : build_tuple('$1', reverse([reverse('$4')|'$2'])).
  +tuple -> open_curly container_args close_curly :  build_tuple('$1', '$2').
   
   % Bitstrings
   
   bit_string -> open_bit '>>' : build_bit('$1', []).
  -bit_string -> open_bit kw_base close_bit : build_bit('$1', [reverse('$2')]).
  -bit_string -> open_bit container_args_base close_bit : build_bit('$1', reverse('$2')).
  -bit_string -> open_bit container_args_base ',' kw_base close_bit : build_bit('$1', reverse([reverse('$4')|'$2'])).
  +bit_string -> open_bit container_args close_bit : build_bit('$1', '$2').
   
   % Map and structs
   
  
positive.code: 
  kw_base -> kw_eol container_expr : [{ ?exprs('$1'), '$2' }].
  kw_base -> kw_base ',' kw_eol container_expr : [{ ?exprs('$3'), '$4' }|'$1'].
  
  call_args_no_parens_kw_expr -> kw_eol call_args_no_parens_expr : { ?exprs('$1'),'$2' }.
  call_args_no_parens_kw -> call_args_no_parens_kw_expr : ['$1'].
  
negative.code:   add_op_eol mult_op_eol exp_op_eol two_op_eol pipe_op_eol stab_op_eol
    arrow_op_eol match_op_eol when_op_eol in_op_eol in_match_op_eol
    open_paren close_paren empty_paren
    list list_args open_bracket close_bracket
    tuple open_curly close_curly
    bit_string open_bit close_bit
    map map_op map_close map_args struct_op struct_expr
    assoc_op_eol assoc_expr assoc_base assoc_update assoc_update_kw assoc
    container_args_base container_args call_args_parens_base call_args_parens parens_call
    call_args_no_parens_one call_args_no_parens_expr call_args_no_parens_comma_expr
    call_args_no_parens_all call_args_no_parens_many call_args_no_parens_many_strict
    stab stab_eol stab_expr stab_maybe_expr stab_parens_many
    kw_eol kw_base kw call_args_no_parens_kw_expr call_args_no_parens_kw
    dot_op dot_alias dot_identifier dot_op_identifier dot_do_identifier
    dot_paren_identifier dot_bracket_identifier
    do_block fn_eol do_eol end_eol block_eol block_item block_list
  