anchor.diff:  %% 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) ++ get_macros(Module).
   
   get_functions(Module) ->
     try
  
positive.code:     error:undef -> Module:module_info(exports)
    end.
  
  get_macros(Meta, Module, E) ->
    try
      Module:'__info__'(macros)
    catch
      error:undef ->
        Tuple = {no_macros, Module},
        elixir_errors:form_error(Meta, ?m(E, file), ?MODULE, Tuple)
    end.
  
  get_optional_macros(Module)  ->
    case code:ensure_loaded(Module) of
      {module, Module} ->
        try
          Module:'__info__'(macros)
        catch
          error:undef -> []
        end;
      {error, _} -> []
    end.
  
  %% VALIDATION HELPERS
  
negative.code: 
  import_macros(Force, Meta, Ref, Opts, E) ->
    calculate(Meta, Ref, Opts, ?m(E, macros), ?m(E, file), fun() ->
      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).
  
  