     Enum.each(read_manifest(manifest, compile_path), fn
       module(beam: beam) ->
         File.rm(beam)
+
       _ ->
         :ok
     end)

    Enum.reduce(data, {[], []}, fn
      module() = module, {modules, sources} ->
        {[expand_beam_path(module, compile_path) | modules], sources}
      source() = source, {modules, sources} ->
        {modules, [source | sources]}
    end)

      # something stale, I need to be recompiled.
      has_any_key?(changed, sources) or has_any_key?(stale, compile_references) ->
        remove_and_purge(beam, module)

        {
          rest,
          Map.put(stale, module, true),
          Enum.reduce(sources, changed, &Map.put(&2, &1, true))
        }

      # If I have a runtime references to something stale,
      # I am stale too.
