     new_from_list(Map.keys(map1) ++ Map.keys(map2), [])
   end
 
+  @compile {:inline, [order_by_size: 2]}
   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


  defp map_subset?([], _), do: true
  defp map_subset?([key | rest], map2) do
    match?(%{^key => _}, map2) and map_subset?(rest, map2)
  end

  @doc """
