     end
   end
 
+  @spec path({atom, String.t}, [String.t]) :: String.t
+  @spec path(String.t, [String.t]) :: String.t
+
   defp path({app, from}, segments) when is_atom(app) and is_binary(from),
     do: Path.join([Application.app_dir(app), from|segments])
   defp path(from, segments),
     do: Path.join([from|segments])
+
+  @spec subset([String.t], [String.t]) :: [String.t] | nil
 
   # if not a subset, returns nil instead of []
   defp subset([h|expected], [h|actual]),

      [year, month, day, hour, min, sec]))
  end

  defp file_size_check(info) do
    case file_info(info, :type) do
      :regular ->

    |> halt
  end

  defp serve_directory_listing({:error, conn}, _at, _segments, _query) do
    conn
  end

