anchor.diff:        false
     end.
   
  -%% We've reached the invoked macro, skip it with the rest
  -prune_stacktrace(Info, [{_, _, [E|_], _}|_], E) ->
  +% %% We've reached the macro wrapper fun, skip it with the rest
  +prune_stacktrace([{_, _, [E|_], _}|_], _MFA, Info, E) ->
  +  Info;
  +%% We've reached the invoked macro, skip it
  +prune_stacktrace([{M, F, A, _}|_], {M, F, A}, Info, _E) ->
     Info;
   %% We've reached the elixir_dispatch internals, skip it with the rest
  -prune_stacktrace(Info, [{Mod, _, _, _}|_], _) when Mod == elixir_dispatch; Mod == elixir_exp ->
  +prune_stacktrace([{Mod, _, _, _}|_], _MFA, Info, _E) when Mod == elixir_dispatch; Mod == elixir_exp ->
     Info;
  -prune_stacktrace(Info, [H|T], E) ->
  -  [H|prune_stacktrace(Info, T, E)];
  -prune_stacktrace(Info, [], _) ->
  +prune_stacktrace([H|T], MFA, Info, E) ->
  +  [H|prune_stacktrace(T, MFA, Info, E)];
  +prune_stacktrace([], _MFA, Info, _E) ->
     Info.
   
   %% ERROR HANDLING
  
positive.code:       E)
    catch
      Kind:Reason ->
        Info = [{Receiver, Name, Arity, location(Line, E)}, mfa(Line, E)],
        erlang:raise(Kind, Reason, prune_stacktrace(Info, erlang:get_stacktrace(), nil))
    end.
  
  mfa(Line, #elixir_env{module=nil} = E) ->
    {elixir_compiler, '__FILE__', 2, location(Line, E)};
  mfa(Line, #elixir_env{module=Module, function=nil} = E) ->
    {Module, '__MODULE__', 0, location(Line, E)};
  mfa(Line, #elixir_env{module=Module, function={Name, Arity}} = E) ->
    {Module, Name, Arity, location(Line, E)}.
  
  location(Line, E) ->
    [{file, elixir_utils:characters_to_list(E#elixir_env.file)}, {line, Line}].
  
  %% Helpers
  
  
negative.code:     apply(Fun, [EArg|Args])
    catch
      Kind:Reason ->
        Arity = length(Args),
        MFA  = {Receiver, ?elixir_macro(Name), Arity+1},
        Info = [{Receiver, Name, Arity, [{file, "expanding macro"}]}, caller(Line, E)],
        erlang:raise(Kind, Reason, prune_stacktrace(erlang:get_stacktrace(), MFA, Info, EArg))
    end.
  
  expand_macro_named(Meta, Receiver, Name, Arity, Args, E) ->
  