   end
 
   def slice(coll, first..last) do
-    { list, count } = iterate_and_count(coll, 0)
+    { list, count } = enumerate_and_count(coll, 0)
     corr_first = if first >= 0, do: first, else: first + count
     corr_last = if last >= 0, do: last, else: last + count
     length = corr_last - corr_first + 1

  collection.

  Be aware that a negative `count` implies the collection
  will be iterated twice. Once to calculate the position and
  a second time to do the actual splitting.

  ## Examples

  Returns `{ :ok, element }` if found, otherwise `:error`.

  A negative index can be passed, which means the collection is
  enumerated once and the index is counted from the end (i.e.
  `-1` fetches the last element).

  ## Examples
