 
     {modules, structs, sources, pending_modules, pending_structs} = get_compiler_info()
 
-    {source_external, existing_source?} =
-      case List.keyfind(sources, source, source(:source)) do
-        source(external: old_external) -> {external ++ old_external, true}
-        nil -> {external, false}
-      end
-
     {module_sources, existing_module?} =
       case List.keyfind(modules, module, module(:module)) do
         module(sources: old_sources) -> {[source | List.delete(old_sources, source)], true}

        runtime_references: runtime_references,
        compile_dispatches: compile_dispatches,
        runtime_dispatches: runtime_dispatches,
        external: source_external,
        warnings: []
      )

    old_struct = Map.get(structs, module)

      end

    modules = prepend_or_merge(modules, module, module(:module), new_module, existing_module?)
    sources = prepend_or_merge(sources, source, source(:source), new_source, true)
    put_compiler_info({modules, structs, sources, pending_modules, pending_structs})
    :ok
  end
