 
   defimpl Collectable do
     def into(original) do
-      {original, fn
+      fun = fn
         map_set, {:cont, x} -> MapSet.put(map_set, x)
         map_set, :done -> map_set
         _, :halt -> :ok
-      end}
+      end
+
+      {original, fun}
     end
   end
 

      #MapSet<[2, 4]>

  """
  @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
      |> new_from_list_transform(transform, [])

    %MapSet{map: map}

      #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}
