     true
   end
   defp none_in?([key | rest], map2) do
-    case Map.has_key?(map2, key) do
-      true -> false
-      false -> none_in?(rest, map2)
+    case map2 do
+      %{^key => _} -> false
+      _ -> none_in?(rest, map2)
     end
   end
 

    new_from_list(Map.keys(map1) ++ Map.keys(map2), [])
  end

  defp order_by_size(map1, map2) when map_size(map1) > map_size(map2), do: {map2, map1}
  defp order_by_size(map1, map2), do: {map1, map2}


    map =
      map1
      |> Map.keys
      |> filter_not_in(map2, [])

    %MapSet{map: map}
  end
