     {:type, line(meta), :binary, [{:integer, line(meta), 0}, {:integer, line(meta), 0}]}
   end
 
-  defp typespec({:<<>>, meta, [{:::, unit_meta, [{:_, _, ctx1}, {:*, _, [{:_, _, ctx2}, unit]}]}]}, _, _)
-      when is_atom(ctx1) and is_atom(ctx2) and is_integer(unit) do
+  defp typespec(
+         {:<<>>, meta, [{:::, unit_meta, [{:_, _, ctx1}, {:*, _, [{:_, _, ctx2}, unit]}]}]},
+         _,
+         _
+       )
+       when is_atom(ctx1) and is_atom(ctx2) and is_integer(unit) do
     {:type, line(meta), :binary, [{:integer, line(meta), 0}, {:integer, line(unit_meta), unit}]}
   end
 
   defp typespec({:<<>>, meta, [{:::, size_meta, [{:_, _, ctx}, size]}]}, _, _)
-      when is_atom(ctx) and is_integer(size) do
+       when is_atom(ctx) and is_integer(size) do
     {:type, line(meta), :binary, [{:integer, line(size_meta), size}, {:integer, line(meta), 0}]}
   end
 
-  defp typespec({:<<>>, meta, [{:::, size_meta, [{:_, _, ctx1}, size]}, {:::, unit_meta, [{:_, _, ctx2}, {:*, _, [{:_, _, ctx3}, unit]}]}]}, _, _)
-      when is_atom(ctx1) and is_atom(ctx2) and is_atom(ctx3) and is_integer(size) and is_integer(unit) do
-    {:type, line(meta), :binary, [{:integer, line(size_meta), size}, {:integer, line(unit_meta), unit}]}
+  defp typespec(
+         {
+           :<<>>,
+           meta,
+           [
+             {:::, size_meta, [{:_, _, ctx1}, size]},
+             {:::, unit_meta, [{:_, _, ctx2}, {:*, _, [{:_, _, ctx3}, unit]}]}
+           ]
+         },
+         _,
+         _
+       )
+       when is_atom(ctx1) and is_atom(ctx2) and is_atom(ctx3) and is_integer(size) and
+              is_integer(unit) do
+    args = [{:integer, line(size_meta), size}, {:integer, line(unit_meta), unit}]
+    {:type, line(meta), :binary, args}
   end
 
   ## Handle maps and structs

      {name, arity} -> store_typedoc(line, file, module, kind, name, arity)
      :error -> :error
    end
    Module.store_typespec(module, kind, {kind, expr, pos})
  end


  defmacro deftypep(type) do
    pos = :elixir_locals.cache_env(__CALLER__)
    %{line: line, file: file, module: module} = __CALLER__

    quote do
      Kernel.Typespec.deftype(
        :typep,
        unquote(Macro.escape(type, unquote: true)),
        unquote(line),
        unquote(file),
        unquote(module),
        unquote(pos)
      )
    end
  end

