       {_, []} -> new_list
       {check, deleted} ->
         deleted_map = Enum.into(deleted, %{})
-        all_checked(check, deleted_map)
+        all_checked(check, deleted_map, opts)
     end
     if diff != %{} do
       diff

    end
  end

  @spec do_diff(binary | integer | float, binary | integer | float) :: map | nil
  defp do_diff(i1, i2, opts) when not (is_list(i1) and is_list(i2))
                    and not (is_map(i1) and is_map(i2)) do
    compare = if Keyword.get(opts, :strict_equality, @default_strict_equality) do

    end
  end

  @spec do_diff(map, map, list) :: map | nil
  defp do_diff(map1, map2, opts) when is_map(map1) and is_map(map2) do
    keys_non_uniq = Enum.concat(Map.keys(map1), Map.keys(map2))
    diff = keys_non_uniq
