     quote do
       fn entry, acc(head, prev, tail) = acc ->
         value = unquote(callback).(entry)
+
         case prev do
           {:value, ^value} -> skip(acc)
           _ -> next_with_acc(unquote(fun), entry, head, {:value, value}, tail)


  def chunk_every(chunk_by, enumerable, count, step, leftover) do
    limit = :erlang.max(count, step)
    chunk_by.(enumerable, {[], 0}, fn entry, {acc_buffer, acc_count} ->
      acc_buffer = [entry | acc_buffer]
      acc_count = acc_count + 1


      fn
        entry, acc(head, curr, tail) when curr in [unquote(nth), :first] ->
          next_with_acc(unquote(fun), entry, head, 1, tail)

        entry, acc(head, curr, tail) ->
          skip(acc(head, curr + 1, tail))
      end
