   alias Serum.Template
   alias Serum.Template.Compiler, as: TC
 
+  @type tag_map() :: %{optional(Tag.t()) => [Post.t()]}
+
   @type result() :: %{
           pages: [Page.t()],
           posts: [Post.t()],
-          tag_map: %{optional(Tag.t()) => [Post.t()]},
+          tag_map: tag_map(),
           tag_counts: [{Tag.t(), non_neg_integer()}]
         }
 

  Processes/parses the input files to produce the intermediate data.
  """

  alias Serum.Page
  alias Serum.Post
  alias Serum.ProjectInfo, as: Proj

    end
  end

  @spec get_tag_map([Post.t()]) :: map()
  defp get_tag_map(all_posts) do
    all_tags =
