 
   def random(enumerable) do
     result =
-      case Enumerable.slice(enumerable) do
+      case backwards_compatible_slice(enumerable) do
         {:ok, 0, _} ->
           []
 

  end

  defp slice_count_and_fun(enumerable) do
    case Enumerable.slice(enumerable) do
      {:ok, count, fun} when is_function(fun) ->
        {count, fun}


  end

  def empty?(enumerable) do
    case backwards_compatible_slice(enumerable) do
      {:ok, value, _} ->
        value == 0

