   end
 
   @doc """
-  Splits `coll` on every element for which `fun` returns a new value.
+  Splits `collection` on every element for which `fun` returns a new value.
 
   ## Examples
 

  """
  @spec slice(t, integer, non_neg_integer) :: list

  def slice(_coll, _start, 0), do: []

  def slice(coll, start, count) when start < 0 do
    {list, new_start} = enumerate_and_count(coll, start)
    if new_start >= 0 do
      slice(list, new_start, count)
    else


  """
  @spec unzip(t) :: {list(element), list(element)}
  def unzip(collection) do
    {list1, list2} = reduce(collection, {[], []}, fn({el1, el2}, {list1, list2}) ->
      {[el1|list1], [el2|list2]}
    end)

