          post_task = Task.async(fn -> process_posts(post_files, proj) end),
          {:ok, pages} <- Task.await(page_task),
          {:ok, posts} <- Task.await(post_task) do
+      {:ok, make_result(pages, posts)}
     else
       {:error, _} = error -> error
     end

        error
    end
  end
end

  alias Serum.Template
  alias Serum.TemplateCompiler, as: TC

  @type result() :: %{
          pages: [Page.t()],
          posts: [Post.t()],
          tag_map: %{required(Tag.t()) => [Post.t()]},
          tag_counts: %{required(Tag.t()) => non_neg_integer()}
        }

  @spec process_files(map(), Proj.t()) :: Result.t(result())
  def process_files(files, proj) do
    %{pages: page_files, posts: post_files} = files

