anchor.diff:    end.
   
   load_form(Line, Forms, Opts, #{file := File} = E) ->
  -  elixir_compiler:module(Forms, File, Opts, fun(Module, Binary) ->
  +  elixir_compiler:module(Forms, File, Opts, fun(Module, Binary0) ->
  +    Docs = elixir_compiler:get_opt(docs),
  +    Binary = add_docs_chunk(Binary0, Module, Line, Docs),
  +
       Env = elixir_env:linify({Line, E}),
       eval_callbacks(Line, Module, after_compile, [Env, Binary], E),
   
  
positive.code: 
  module_clause(Module) ->
    {clause, 0, [{atom, 0, module}], [], [{atom, 0, Module}]}.
  
  docs_clause(Module, true) ->
    Docs = ordsets:from_list(
      [{Tuple, Line, Kind, Sig, Doc} ||
       {Tuple, Line, Kind, Sig, Doc} <- ets:tab2list(docs_table(Module)),
       Kind =/= type, Kind =/= opaque]),
    {clause, 0, [{atom, 0, docs}], [], [elixir_utils:elixir_to_erl(Docs)]};
  
  docs_clause(_Module, _) ->
    {clause, 0, [{atom, 0, docs}], [], [{atom, 0, nil}]}.
  
  moduledoc_clause(Line, Module, true) ->
    Docs = 'Elixir.Module':get_attribute(Module, moduledoc),
    {clause, 0, [{atom, 0, moduledoc}], [], [elixir_utils:elixir_to_erl({Line, Docs})]};
  
  moduledoc_clause(_Line, _Module, _) ->
    {clause, 0, [{atom, 0, moduledoc}], [], [{atom, 0, nil}]}.
  
  else_clause() ->
    Info = {call, 0, {atom, 0, module_info}, [{var, 0, atom}]},
  
negative.code:         {function, 0, '__info__', 1, [
            functions_clause(Def),
            macros_clause(Defmacro),
            module_clause(Module),
            else_clause()
          ]}
  