anchor.diff:          true ->  {"the call to ~ts/~B has no effect", [F, A]}
         end
     end,
  -  Message = io_lib:format(Fmt, Args),
  -  warn(Line, File, Message);
  +  io_lib:format(Fmt, Args);
   
   %% Rewrite undefined behaviour to check for protocols
  -handle_file_warning(_, File, {Line, erl_lint, {undefined_behaviour_func, {Fun, Arity}, Module}}) ->
  +format_error(erl_lint, {undefined_behaviour_func, {Fun, Arity}, Module}) ->
     {DefKind, Def, DefArity} =
       case atom_to_list(Fun) of
         "MACRO-" ++ Rest -> {macro, list_to_atom(Rest), Arity - 1};
  
positive.code:     <<"syntax error before: ">> -> <<"syntax error: expression is incomplete">>;
      _ -> Error
    end,
    do_raise(Line, File, 'Elixir.TokenMissingError', Message);
  
  %% Show a nicer message for end of line
  parse_error(Line, File, <<"syntax error before: ">>, <<"eol">>) ->
    do_raise(Line, File, 'Elixir.SyntaxError',
             <<"unexpectedly reached end of line. The current expression is invalid or incomplete">>);
  
  %% Show a nicer message for missing end tokens
  parse_error(Line, File, <<"syntax error before: ">>, <<"'end'">>) ->
    do_raise(Line, File, 'Elixir.SyntaxError', <<"unexpected token: end">>);
  
  %% Produce a human-readable message for errors before a sigil
  parse_error(Line, File, <<"syntax error before: ">>, <<"{sigil,", _Rest/binary>> = Full) ->
  
negative.code: %% syntax.
  parse_error(Line, File, <<"syntax error before: ">>, <<$$, Char/binary>>) ->
    Message = <<"syntax error before: ?", Char/binary>>,
    raise(Line, File, 'Elixir.SyntaxError', Message);
  
  %% Everything else is fine as is
  parse_error(Line, File, Error, Token) when is_binary(Error), is_binary(Token) ->
    Message = <<Error/binary, Token/binary >>,
    raise(Line, File, 'Elixir.SyntaxError', Message).
  
  %% Helper to parse terms which have been converted to binaries
  parse_erl_term(Term) ->
  