   end
 
   @doc """
-  Drops the first `n` items from then enumerable.
+  Drops the first `n` items from the enumerable.
 
   If a negative value `n` is given, the last `n` values will be dropped.
 

    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



  """
  @spec drop(t, integer) :: list
  def drop(enumerable, n) when is_list(enumerable) and is_integer(n) and n >= 0 do
    do_drop(enumerable, n)
  end

  def drop(enumerable, n) when is_integer(n) and n >= 0 do
    res =
      reduce(enumerable, n, fn
        x, acc when is_list(acc) -> [x | acc]
