anchor.diff:  dot_identifier -> identifier : '$1'.
   dot_identifier -> matched_expr dot_op identifier : build_dot('$2', '$1', '$3').
   
  -dot_alias -> aliases : {'__aliases__', meta('$1', 0), ?exprs('$1')}.
  +dot_alias -> aliases : {'__aliases__', meta_from_token('$1', 0), ?exprs('$1')}.
   dot_alias -> matched_expr dot_op aliases : build_dot_alias('$2', '$1', '$3').
   
   dot_op_identifier -> op_identifier : '$1'.
  
positive.code: -compile([{hipe, [{regalloc, linear_scan}]}]).
  -import(lists, [reverse/1, reverse/2]).
  
  meta(Line, Counter) -> [{counter, Counter}|meta(Line)].
  meta({Line, Column, EndColumn}) when is_integer(Line), is_integer(Column), is_integer(EndColumn) -> [{line, Line}];
  meta(Node) -> meta(?line(Node)).
  
  %% Operators
  
  build_op({_Kind, Line, 'in'}, {UOp, _, [Left]}, Right) when ?rearrange_uop(UOp) ->
    {UOp, meta(Line), [{'in', meta(Line), [Left, Right]}]};
  
  build_op({_Kind, Line, Op}, Left, Right) ->
    {Op, meta(Line), [Left, Right]}.
  
  build_unary_op({_Kind, Line, Op}, Expr) ->
    {Op, meta(Line), [Expr]}.
  
  build_list(Marker, Args) ->
    {Args, ?line(Marker)}.
  
  build_tuple(_Marker, [Left, Right]) ->
    {Left, Right};
  build_tuple(Marker, Args) ->
    {'{}', meta(Marker), Args}.
  
  build_bit(Marker, Args) ->
    {'<<>>', meta(Marker), Args}.
  
  build_map(Marker, Args) ->
    {'%{}', meta(Marker), Args}.
  
  build_map_update(Marker, {Pipe, Left, Right}, Extra) ->
    {'%{}', meta(Marker), [build_op(Pipe, Left, Right ++ Extra)]}.
  
  %% Blocks
  
  
negative.code:   [string_part(Part) || Part <- Parts].
  string_part(Binary) when is_binary(Binary) ->
    Binary;
  string_part({Location, Tokens}) ->
    Form = string_tokens_parse(Tokens),
    Meta = meta_from_location(Location),
    {'::', Meta, [{{'.', Meta, ['Elixir.Kernel', to_string]}, Meta, [Form]}, {binary, Meta, nil}]}.
  
  string_tokens_parse(Tokens) ->
  