anchor.diff:  
   % KV
   
  -kw_eol -> kw_identifier : ?exprs('$1').
  -kw_eol -> kw_identifier eol : ?exprs('$1').
  -kw_eol -> kw_identifier_safe : build_quoted_atom('$1', true).
  -kw_eol -> kw_identifier_safe eol : build_quoted_atom('$1', true).
  -kw_eol -> kw_identifier_unsafe : build_quoted_atom('$1', false).
  -kw_eol -> kw_identifier_unsafe eol : build_quoted_atom('$1', false).
  +kw_eol -> kw_identifier : handle_literal(?exprs('$1'), '$1', [{keyword, true}]).
  +kw_eol -> kw_identifier eol : handle_literal(?exprs('$1'), '$1', [{keyword, true}]).
  +kw_eol -> kw_identifier_safe : build_quoted_atom('$1', true, [{keyword, true}]).
  +kw_eol -> kw_identifier_safe eol : build_quoted_atom('$1', true, [{keyword, true}]).
  +kw_eol -> kw_identifier_unsafe : build_quoted_atom('$1', false, [{keyword, true}]).
  +kw_eol -> kw_identifier_unsafe eol : build_quoted_atom('$1', false, [{keyword, true}]).
   
   kw_base -> kw_eol container_expr : [{'$1', '$2'}].
   kw_base -> kw_base ',' kw_eol container_expr : [{'$3', '$4'} | '$1'].
  
positive.code: number -> float : handle_literal(number_value('$1'), '$1', [{original, ?exprs('$1')}]).
  
  %% Aliases and properly formed calls. Used by map_expr.
  max_expr -> atom : handle_literal(?exprs('$1'), '$1').
  max_expr -> atom_safe : build_quoted_atom('$1', true).
  max_expr -> atom_unsafe : build_quoted_atom('$1', false).
  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'.
  
negative.code:     end,
    {{'.', Meta, ['Elixir.String', to_charlist]}, Meta, [{'<<>>', MetaWithExtra, string_parts(Args)}]}.
  
  build_quoted_atom({_, _Location, [H]} = Token, Safe, ExtraMeta) when is_binary(H) ->
    Op = binary_to_atom_op(Safe),
    handle_literal(erlang:Op(H, utf8), Token, ExtraMeta);
  build_quoted_atom({_, Location, Args}, Safe, ExtraMeta) ->
    Meta = meta_from_location(Location),
    MetaWithExtra =
      case get(wrap_literals_in_blocks) of
        true -> ExtraMeta ++ Meta;
        false -> Meta
      end,
    {{'.', Meta, [erlang, binary_to_atom_op(Safe)]}, Meta, [{'<<>>', MetaWithExtra, string_parts(Args)}, utf8]}.
  
  binary_to_atom_op(true)  -> binary_to_existing_atom;
  binary_to_atom_op(false) -> binary_to_atom.
  