anchor.diff:    end;
   
   % ## Containers
  -tokenize(Line, [$.,T1,T2|Rest], Tokens) when T1 == $[ andalso T2 == $]; T1 == ${ andalso T2 == $} ->
  -  tokenize(Line, Rest, [tokenize_call_identifier(identifier, Line, list_to_atom([T1,T2]), Rest),{'.',Line}|Tokens]);
  -
   tokenize(Line, ".<<>>" ++ Rest, Tokens) ->
     tokenize(Line, Rest, [tokenize_call_identifier(identifier, Line, '<<>>', Rest),{'.',Line}|Tokens]);
   
  +tokenize(Line, [$.,T1,T2|Rest], Tokens) when ?container2(T1, T2) ->
  +  tokenize(Line, Rest, [tokenize_call_identifier(identifier, Line, list_to_atom([T1,T2]), Rest),{'.',Line}|Tokens]);
  +
   % ## Three Token Operators
  -tokenize(Line, [$.,T1,T2,T3|Rest], Tokens) when
  -  T1 == $=, T2 == $=, T3 == $=;
  -  T1 == $!, T2 == $=, T3 == $= ->
  +tokenize(Line, [$.,T1,T2,T3|Rest], Tokens) when ?comp3(T1, T2, T3) ->
     tokenize(Line, Rest, [tokenize_call_identifier(identifier, Line, list_to_atom([T1,T2,T3]), Rest),{'.',Line}|Tokens]);
   
   % ## Two Token Operators
  -tokenize(Line, [$.,T1,T2|Rest], Tokens) when T1 == $& andalso T2 == $&;
  -  T1 == $|, T2 == $|; T1 == $<, T2 == $>;
  -  T1 == $=, T2 == $=; T1 == $!, T2 == $=;
  -  T1 == $<, T2 == $=; T1 == $>, T2 == $=;
  -  T1 == $+, T2 == $+; T1 == $-, T2 == $-;
  -  T1 == $*, T2 == $*; T1 == $/, T2 == $/;
  -  T1 == $<, T2 == $-; T1 == $:, T2 == $:;
  -  T1 == $-, T2 == $> ->
  +tokenize(Line, [$.,T1,T2|Rest], Tokens) when ?comp2(T1, T2); ?op2(T1, T2) ->
     tokenize(Line, Rest, [tokenize_call_identifier(identifier, Line, list_to_atom([T1,T2]), Rest),{'.',Line}|Tokens]);
   
   % ## Single Token Operators
  -tokenize(Line, [$.,T|Rest], Tokens) when T == $+; T == $-; T == $*; T == $&,
  -  T == $/; T == $=; T == $|; T == $!; T == $<; T == $>; T == $^; T == $@ ->
  +tokenize(Line, [$.,T|Rest], Tokens) when ?comp1(T); ?op1(T); T == $& ->
     tokenize(Line, Rest, [tokenize_call_identifier(identifier, Line, list_to_atom([T]), Rest),{'.',Line}|Tokens]);
   
   % Heredocs
   
  -tokenize(Line, [H,H,H|T], Tokens) when H == $"; H == $' ->
  +tokenize(Line, [H,H,H|T], Tokens) when ?is_quote(H) ->
     case extract_heredoc_with_interpolation(Line, true, T, H) of
       { error, _ } = Error ->
         Error;
  
positive.code: tokenize(Line, [$.,$(|Rest], Tokens) ->
    tokenize(Line, [$(|Rest], [{dot_call_op,Line,'.'}|Tokens]);
  
  tokenize(Line, [$.,H|T], Tokens) when H == $"; H == $' ->
    case elixir_interpolation:extract(Line, true, T, H) of
      { NewLine, [Part], Rest } when is_binary(Part) ->
        Atom = binary_to_atom(Part, utf8),
  
negative.code: 
  % Strings
  
  tokenize(Line, [H|T], Tokens) when ?is_quote(H) ->
    case elixir_interpolation:extract(Line, true, T, H) of
      { NewLine, Parts, [$:|Rest] } ->
        case Parts of
  