def rotate(count = 1)
      return self if (count % @size) == 0
      return self.class.new(((array = to_a).frozen? ? array.rotate(count) : array.rotate!(count)).freeze)
    end
def rotate(count = 1)
      return self if (count % @size) == 0
      return self.class.new(((array = to_a).frozen? ? array.rotate(count) : array.rotate!(count)).freeze)
    end
Return a new `Tuple` with the same elements, but rotated so that the one at
 index `count` is the first element of the new tuple. If `count` is positive,
 the elements will be shifted left, and those shifted past the lowest position
 will be moved to the end. If `count` is negative, the elements will be shifted
 right, and those shifted past the last position will be moved to the beginning.

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

 @param count [Integer] The number of positions to shift elements by
 @return [Tuple]