   """
   @spec put(t(val), new_val) :: t(val | new_val) when val: value, new_val: value
   def put(%MapSet{map: map} = map_set, value) do
-    %{map_set | map: Map.put(map, value, [])}
+    %{map_set | map: Map.put(map, value, @dummy_value)}
   end
 
   @doc """

  `MapSet`s can also be constructed starting from other collection-type data
  structures: for example, see `MapSet.new/1` or `Enum.into/2`.
  """

  @type value :: term


  end

  defp new_from_list([item | rest], acc) do
    new_from_list(rest, [{item, @dummy_value} | acc])
  end

  defp new_from_list_transform([], _fun, acc) do
    :maps.from_list(acc)
  end
  defp new_from_list_transform([item | rest], fun, acc) do
    new_from_list_transform(rest, fun, [{fun.(item), @dummy_value} | acc])
  end

  @doc """
