       |> Enum.to_list
       |> new_from_list([])
 
-    %MapSet{data: map}
+    %MapSet{map: map}
   end
 
   @doc """

      |> Enum.to_list
      |> new_from_list_transform(transform, [])

    %MapSet{data: map}
  end

  defp new_from_list([], acc) do


  """
  @spec intersection(t(val), t(val)) :: t(val) when val: value
  def intersection(%MapSet{map: map1}, %MapSet{map: map2}) do
    {map1, map2} = order_by_size(map1, map2)
    %MapSet{map: Map.take(map2, Map.keys(map1))}
  end

  @doc """
