def drop(n)
      return self if n == 0
      return self.class.empty if n >= @size
      raise ArgumentError, "attempt to drop negative size" if n < 0
      return self.class.new(flatten_suffix(@root, @levels * BITS_PER_LEVEL, n, []))
    end
def drop(n)
      return self if n == 0
      return self.class.empty if n >= @size
      raise ArgumentError, "attempt to drop negative size" if n < 0
      return self.class.new(flatten_suffix(@root, @levels * BITS_PER_LEVEL, n, []))
    end
Drop the first `n` elements and return the rest in a new `Tuple`.

 @example
   Erlang::Tuple["A", "B", "C", "D", "E", "F"].drop(2)
   # => Erlang::Tuple["C", "D", "E", "F"]

 @param n [Integer] The number of elements to remove
 @return [Tuple]
 @raise ArgumentError if `n` is negative.