anchor.diff:  
   import_macros(Force, Meta, Ref, Opts, E) ->
     calculate(Meta, Ref, Opts, ?m(E, macros), ?m(E, file), fun() ->
  -    case Force of
  -      true  -> get_macros(Meta, Ref, E);
  -      false -> get_optional_macros(Ref)
  +    case fetch_macros(Ref) of
  +      {ok, Macros} ->
  +        Macros;
  +      error when Force ->
  +        Tuple = {no_macros, Ref},
  +        elixir_errors:form_error(Meta, ?m(E, file), ?MODULE, Tuple);
  +      error ->
  +        []
       end
     end).
   
  
positive.code: %% Retrieve functions and macros from modules
  
  get_exports(Module) ->
    try
      Module:'__info__'(functions) ++ Module:'__info__'(macros)
    catch
      error:undef -> Module:module_info(exports)
    end.
  
  get_functions(Module) ->
    try
  
negative.code:     error:undef -> Module:module_info(exports)
    end.
  
  get_macros(Module) ->
    case fetch_macros(Module) of
      {ok, Macros} ->
        Macros;
      error ->
        []
    end.
  
  fetch_macros(Module) ->
    try
      {ok, Module:'__info__'(macros)}
    catch
      error:undef -> error
    end.
  
  %% VALIDATION HELPERS
  