anchor.diff:  -define(is_downcase(S), (S >= $a andalso S =< $z)).
   
   %% Others
  --define(is_quote(S), (S == $" orelse S == $')).
  --define(is_sigil(S), ((S == $/) orelse (S == $<) orelse (S == $") orelse (S == $') orelse
  -                      (S == $[) orelse (S == $() orelse (S == ${) orelse (S == $|))).
  +-define(is_quote(S), (S =:= $" orelse S =:= $')).
  +-define(is_sigil(S), (S =:= $/ orelse S =:= $< orelse S =:= $" orelse S =:= $' orelse
  +                      S =:= $[ orelse S =:= $( orelse S =:= ${ orelse S =:= $|)).
   
   %% Spaces
  --define(is_horizontal_space(S), ((S == $\s) orelse (S == $\t))).
  --define(is_vertical_space(S), ((S == $\r) orelse (S == $\n))).
  +-define(is_horizontal_space(S), (S =:= $\s orelse S =:= $\t)).
  +-define(is_vertical_space(S), (S =:= $\r orelse S =:= $\n)).
   -define(is_space(S), (?is_horizontal_space(S) orelse ?is_vertical_space(S))).
   
   %% Operators
   -define(at_op(T),
  -  T == $@).
  +  T =:= $@).
   
   -define(capture_op(T),
  -  T == $&).
  +  T =:= $&).
   
   -define(unary_op(T),
  -  T == $!;
  -  T == $^).
  +  T =:= $!;
  +  T =:= $^).
   
   -define(unary_op3(T1, T2, T3),
  -  T1 == $~, T2 == $~, T3 == $~).
  +  T1 =:= $~, T2 =:= $~, T3 =:= $~).
   
   -define(list_op(T1, T2),
  -  T1 == $+, T2 == $+;
  -  T1 == $-, T2 == $-).
  +  T1 =:= $+, T2 =:= $+;
  +  T1 =:= $-, T2 =:= $-).
   
   -define(two_op(T1, T2),
  -  T1 == $<, T2 == $>;
  -  T1 == $., T2 == $.).
  +  T1 =:= $<, T2 =:= $>;
  +  T1 =:= $., T2 =:= $.).
   
   -define(three_op(T1, T2, T3),
  -  T1 == $^, T2 == $^, T3 == $^).
  +  T1 =:= $^, T2 =:= $^, T3 =:= $^).
   
   -define(mult_op(T),
  -  T == $* orelse T == $/).
  +  T =:= $* orelse T =:= $/).
   
   -define(dual_op(T),
  -  T == $+ orelse T == $-).
  +  T =:= $+ orelse T =:= $-).
   
   -define(arrow_op3(T1, T2, T3),
  -  T1 == $<, T2 == $<, T3 == $<;
  -  T1 == $>, T2 == $>, T3 == $>;
  -  T1 == $~, T2 == $>, T3 == $>;
  -  T1 == $<, T2 == $<, T3 == $~;
  -  T1 == $<, T2 == $~, T3 == $>;
  -  T1 == $<, T2 == $|, T3 == $>).
  +  T1 =:= $<, T2 =:= $<, T3 =:= $<;
  +  T1 =:= $>, T2 =:= $>, T3 =:= $>;
  +  T1 =:= $~, T2 =:= $>, T3 =:= $>;
  +  T1 =:= $<, T2 =:= $<, T3 =:= $~;
  +  T1 =:= $<, T2 =:= $~, T3 =:= $>;
  +  T1 =:= $<, T2 =:= $|, T3 =:= $>).
   
   -define(arrow_op(T1, T2),
  -  T1 == $|, T2 == $>;
  -  T1 == $~, T2 == $>;
  -  T1 == $<, T2 == $~).
  +  T1 =:= $|, T2 =:= $>;
  +  T1 =:= $~, T2 =:= $>;
  +  T1 =:= $<, T2 =:= $~).
   
   -define(rel_op(T),
  -  T == $<;
  -  T == $>).
  +  T =:= $<;
  +  T =:= $>).
   
   -define(rel_op2(T1, T2),
  -  T1 == $<, T2 == $=;
  -  T1 == $>, T2 == $=).
  +  T1 =:= $<, T2 =:= $=;
  +  T1 =:= $>, T2 =:= $=).
   
   -define(comp_op2(T1, T2),
  -  T1 == $=, T2 == $=;
  -  T1 == $=, T2 == $~;
  -  T1 == $!, T2 == $=).
  +  T1 =:= $=, T2 =:= $=;
  +  T1 =:= $=, T2 =:= $~;
  +  T1 =:= $!, T2 =:= $=).
   
   -define(comp_op3(T1, T2, T3),
  -  T1 == $=, T2 == $=, T3 == $=;
  -  T1 == $!, T2 == $=, T3 == $=).
  +  T1 =:= $=, T2 =:= $=, T3 =:= $=;
  +  T1 =:= $!, T2 =:= $=, T3 =:= $=).
   
   -define(and_op(T1, T2),
  -  T1 == $&, T2 == $&).
  +  T1 =:= $&, T2 =:= $&).
   
   -define(or_op(T1, T2),
  -  T1 == $|, T2 == $|).
  +  T1 =:= $|, T2 =:= $|).
   
   -define(and_op3(T1, T2, T3),
  -  T1 == $&, T2 == $&, T3 == $&).
  +  T1 =:= $&, T2 =:= $&, T3 =:= $&).
   
   -define(or_op3(T1, T2, T3),
  -  T1 == $|, T2 == $|, T3 == $|).
  +  T1 =:= $|, T2 =:= $|, T3 =:= $|).
   
   -define(match_op(T),
  -  T == $=).
  +  T =:= $=).
   
   -define(in_match_op(T1, T2),
  -  T1 == $<, T2 == $-;
  -  T1 == $\\, T2 == $\\).
  +  T1 =:= $<, T2 =:= $-;
  +  T1 =:= $\\, T2 =:= $\\).
   
   -define(stab_op(T1, T2),
  -  T1 == $-, T2 == $>).
  +  T1 =:= $-, T2 =:= $>).
   
   -define(type_op(T1, T2),
  -  T1 == $:, T2 == $:).
  +  T1 =:= $:, T2 =:= $:).
   
   -define(pipe_op(T),
  -  T == $|).
  +  T =:= $|).
   
   tokenize(String, Line, Column, #elixir_tokenizer{} = Scope) ->
     tokenize(String, Line, Column, Scope, []);
  
positive.code:     end,
  
    case lists:last(Identifier) of
      Last when Last == $!; Last == $? ->
        Msg = io_lib:format("found ~ts \"~ts\", ending with \"~ts\", followed by =. "
                            "It is unclear if you mean \"~ts ~ts=\" or \"~ts =\". Please add "
                            "a space before or after ~ts to remove the ambiguity",
  
negative.code:   Token = {'>>', {Line, Column, previous_was_eol(Tokens)}},
    handle_terminator(Rest, Line, Column + 2, Scope, Token, Tokens);
  
  tokenize([T | Rest], Line, Column, Scope, Tokens) when T =:= $(; T =:= ${; T =:= $[ ->
    Token = {list_to_atom([T]), {Line, Column, nil}},
    handle_terminator(Rest, Line, Column + 1, Scope, Token, Tokens);
  
  tokenize([T | Rest], Line, Column, Scope, Tokens) when T =:= $); T =:= $}; T =:= $] ->
    Token = {list_to_atom([T]), {Line, Column, previous_was_eol(Tokens)}},
    handle_terminator(Rest, Line, Column + 1, Scope, Token, Tokens);
  
  