         target1.equal?(dict1, dict2)
 
       target1.size(dict1) == target2.size(dict2) ->
-        Enumerable.reduce(dict2, {:cont, true}, fn({k, v}, _acc) ->
+        Enumerable.reduce(dict2, {:cont, true}, fn {k, v}, _acc ->
           case target1.fetch(dict1, k) do
             {:ok, ^v} -> {:cont, true}
-            _         -> {:halt, false}
+            _ -> {:halt, false}
           end
-        end) |> elem(1)
+        end)
+        |> elem(1)
 
       true ->
         false

      end

      def to_list(dict) do
        reduce(dict, {:cont, []}, fn
          kv, acc -> {:cont, [kv | acc]}
        end) |> elem(1) |> :lists.reverse
      end

      def keys(dict) do
        reduce(dict, {:cont, []}, fn
          {k, _}, acc -> {:cont, [k | acc]}
        end) |> elem(1) |> :lists.reverse
      end

      def values(dict) do
        reduce(dict, {:cont, []}, fn
          {_, v}, acc -> {:cont, [v | acc]}
        end) |> elem(1) |> :lists.reverse
      end

      def equal?(dict1, dict2) do

    if target1 == target2 do
      target1.merge(dict1, dict2)
    else
      do_merge(target1, dict1, dict2, fn _k, _v1, v2 -> v2 end)
    end
  end

