   end
 
   def split(collection, count) when count < 0 do
-    { list, count } = iterate_and_count(collection, count)
-    split(list, count)
+    do_split_reverse(reverse(collection), abs(count), [])
   end
 
   @doc """

  Finds the element at the given index (zero-based).
  Returns `{ :ok, element }` if found, otherwise `:error`.

  Expects an ordered collection.

  ## Examples


  end

  def drop(collection, count) when count < 0 do
    do_take_reverse(reverse(collection), abs(count), [])
  end

  @doc """
  Drops items at the beginning of `collection` while `fun` returns `true`.

  ## Examples

