 
   def drop_every(_enumerable, 1), do: []
   def drop_every(enumerable, 0), do: to_list(enumerable)
-  def drop_every([], _nth), do: []
-
-  def drop_every(enumerable, nth) when is_integer(nth) and nth > 0 do
+  def drop_every([], nth) when is_integer(nth), do: []
+
+  def drop_every(enumerable, nth) when is_integer(nth) and nth > 1 do
     {res, _} = reduce(enumerable, {[], :first}, R.drop_every(nth))
     :lists.reverse(res)
   end

    if is_list(res), do: :lists.reverse(res), else: []
  end

  def drop(enumerable, n) when n < 0 do
    do_drop(reverse(enumerable), abs(n)) |> :lists.reverse
  end


  end

  @doc """
  Drops the first `n` items from the enumerable.

  If a negative value `n` is given, the last `n` values will be dropped.

