   end
 
   @doc """
-  Shortcut to `chunk(coll, n, n)`.
+  Shortcut to `chunk(collection, n, n)`.
   """
   @spec chunk(t, non_neg_integer) :: [list]
-  def chunk(coll, n), do: chunk(coll, n, n, nil)
+  def chunk(collection, n), do: chunk(collection, n, n, nil)
 
   @doc """
   Returns a collection of lists containing `n` items each, where

    end
  end

  def slice(coll, start, count) when is_list(coll) and start >= 0 and count > 0 do
    do_slice(coll, start, count)
  end

  def slice(coll, start, count) when start >= 0 and count > 0 do
    {_, _, list} = Enumerable.reduce(coll, {:cont, {start, count, []}}, fn
      _entry, {start, count, _list} when start > 0 ->
        {:cont, {start-1, count, []}}
      entry, {start, count, list} when count > 1 ->


  """
  @spec chunk_by(t, (element -> any)) :: [list]
  def chunk_by(collection, fun) do
    {_, {acc, res}} =
      Enumerable.reduce(collection, {:cont, {[], nil}}, R.chunk_by(fun))

    case res do
      {buffer, _} ->
