       #MapSet<[2, 4]>
 
   """
-  @spec new(Enum.t, (term -> val)) :: t(val) when val: value
+  @spec new(Enum.t(), (term -> val)) :: t(val) when val: value
   def new(enumerable, transform) when is_function(transform, 1) do
     map =
       enumerable
-      |> Enum.to_list
+      |> Enum.to_list()
       |> new_from_list_transform(transform, [])
 
     %MapSet{map: map}

  end

  defp filter_not_in([], _map2, acc), do: :maps.from_list(acc)
  defp filter_not_in([key | rest], map2, acc) do
    case map2 do
      %{^key => _} ->
        filter_not_in(rest, map2, acc)
      _ ->
        filter_not_in(rest, map2, [{key, @dummy_value} | acc])
    end

      #MapSet<[1, 2, 3]>

  """
  @spec new(Enum.t()) :: t
  def new(enumerable)

  def new(%__MODULE__{} = map_set), do: map_set

  def new(enumerable) do
    map =
      enumerable
      |> Enum.to_list()
      |> new_from_list([])

    %MapSet{map: map}
