anchor.diff:    %% Table with meta information about the module.
     DataTable = data_table(Module),
   
  -  case ets:info(DataTable, name) == DataTable of
  -    true  -> elixir_errors:form_error(Line, File, ?MODULE, {module_in_definition, Module});
  +  OldTable = ets:info(DataTable, name),
  +  case OldTable == DataTable of
  +    true  -> elixir_errors:form_error(Line, File, ?MODULE,
  +                                      {
  +                                        module_in_definition,
  +                                        Module,
  +                                        ets:lookup_element(OldTable, file, 2),
  +                                        ets:lookup_element(OldTable, line, 2)
  +                                      });
       false -> []
     end,
   
  
positive.code:   ets:insert(DataTable, {?docs_attr, ets:new(DataTable, [ordered_set, public])}),
    ets:insert(DataTable, {?lexical_attr, Lexical}),
    ets:insert(DataTable, {?overridable_attr, []}),
  
    %% Setup other modules
    elixir_def:setup(Module),
  
negative.code:   io_lib:format("redefining module ~ts", [elixir_aliases:inspect(Module)]);
  format_error({module_reserved, Module}) ->
    io_lib:format("module ~ts is reserved and cannot be defined", [elixir_aliases:inspect(Module)]);
  format_error({module_in_definition, Module, File, Line}) ->
    io_lib:format("cannot define module ~ts because it is currently being defined in ~ts:~B",
      [elixir_aliases:inspect(Module), 'Elixir.Path':relative_to_cwd(File), Line]).
  