anchor.diff:  % Identifier
   
   tokenize(Line, [H|_] = String, Tokens) when H >= $a andalso H =< $z; H == $_ ->
  -  { Rest, { Kind, Identifier } } = tokenize_extra_identifier(String, []),
  +  { Rest, { Kind, _, Identifier } } = tokenize_many_identifier(Line, String, []),
     case Kind == identifier andalso keyword(Identifier) of
       true  ->
         tokenize(Line, Rest, [{Identifier,Line}|Tokens]);
  
positive.code:   Rest = [NotMarker|T],
    tokenize(Line, Rest, [{special_op,Line,list_to_atom([Sign])}|Tokens]);
  
  % Operators/punctuation tokens
  
  tokenize(Line, [T|Rest], Tokens) when T == $(; T == $); T == $,;
    T == $+; T == $-; T == $*; T == $/; T == $=;
    T == ${; T == $}; T == $[; T == $]; T == $|; T == $. ->
    tokenize(Line, Rest, [{list_to_atom([T]), Line}|Tokens]);
  
  tokenize(Line, [T1,T2|Rest], Tokens) when T1 == $: andalso T2 == $:;
    T1 == $& andalso T2 == $&; T1 == $| andalso T2 == $| ->
    tokenize(Line, Rest, [{list_to_atom([T1,T2]), Line}|Tokens]);
  
  % References
  
  tokenize(Line, [H|_] = String, Tokens) when H >= $A andalso H =< $Z ->
  
negative.code:   { Rest, Number } = tokenize_number(String, [], false),
    tokenize(Line, Rest, [{number,Line,Number}|Tokens]);
  
  % Dot operators
  
  % ## Exception for .( as it needs to be treated specially in the parser
  tokenize(Line, [$.,$(|Rest], Tokens) ->
    tokenize(Line, [$(|Rest], [{dot_call_op,Line,'.'}|Tokens]);
  
  % ## 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]);
  
  % ## Two Token Operators
  tokenize(Line, [$.,T1,T2|Rest], Tokens) when T1 == $& andalso T2 == $&; T1 == $| andalso T2 == $|;
    T1 == $: andalso 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 == $= ->
    tokenize(Line, Rest, [tokenize_call_identifier(identifier, Line, list_to_atom([T]), Rest),{'.',Line}|Tokens]);
  
  % Atoms
  
  tokenize(Line, "true" ++ Rest, Tokens) ->
  