     modules =
       for module(binary: binary, module: module) = entry <- modules do
         beam = Atom.to_string(module) <> ".beam"
+
         if binary do
           beam_path = Path.join(compile_path, beam)
           File.write!(beam_path, binary)
           File.touch!(beam_path, timestamp)
         end
+
         module(entry, binary: nil, beam: beam)
       end
 

  end

  defp expand_beam_paths(modules, ""), do: modules
  defp expand_beam_paths(modules, compile_path) do
    Enum.map(modules, fn
      module() = module ->
        expand_beam_path(module, compile_path)
      other ->
        other
    end)

    cond do
      stale != [] ->
        compile_manifest(manifest, exts, modules, sources, stale, dest, timestamp, opts)

      removed != [] ->
        write_manifest(manifest, modules, sources, dest, timestamp)
        {:ok, warning_diagnostics(sources)}

      true ->
        {:noop, warning_diagnostics(sources)}
    end
