anchor.diff:  
   keyword(_) -> false.
   
  -atom_length(Atom) ->
  -  length(atom_to_list(Atom)).
  -
   invalid_character_error(Char) ->
     "invalid character '" ++ [Char] ++ "' in identifier: ".
  
positive.code: 
  %% Check if it is a call identifier (paren | bracket | do)
  
  check_call_identifier(_Kind, Line, Column, Atom, [$(|_]) ->
    {paren_identifier, {Line, Column, Column + atom_length(Atom)}, Atom};
  check_call_identifier(_Kind, Line, Column, Atom, [$[|_]) ->
    {bracket_identifier, {Line, Column, Column + atom_length(Atom)}, Atom};
  check_call_identifier(Kind, Line, Column, Atom, _Rest) ->
    {Kind, {Line, Column, Column + atom_length(Atom)}, Atom}.
  
  add_token_with_nl(Left, [{eol, _}|T]) -> [Left|T];
  add_token_with_nl(Left, T) -> [Left|T].
  
negative.code: 
  tokenize([$.|T], Line, Column, Scope, Tokens) ->
    {Rest, Counter, Offset} = strip_space(T, 0, Column + 1),
    handle_dot([$.|Rest], Line + Counter, Offset, Column, Scope, Tokens);
  
  % Integers and floats
  
  