def sort(&comparator)
      comparator = Erlang.method(:compare) unless block_given?
      array = super(&comparator)
      return self.class.new(array)
    end
def sort(&comparator)
      comparator = Erlang.method(:compare) unless block_given?
      array = super(&comparator)
      return self.class.new(array)
    end
Return a new `Tuple` with the same elements, but sorted.

 @overload sort
   Compare elements with their natural sort key (`#<=>`).

   @example
     Erlang::Tuple["Elephant", "Dog", "Lion"].sort
     # => Erlang::Tuple["Dog", "Elephant", "Lion"]

 @overload sort
   Uses the block as a comparator to determine sorted order.

   @yield [a, b] Any number of times with different pairs of elements.
   @yieldreturn [Integer] Negative if the first element should be sorted
                          lower, positive if the latter element, or 0 if
                          equal.
   @example
     Erlang::Tuple["Elephant", "Dog", "Lion"].sort { |a,b| a.size <=> b.size }
     # => Erlang::Tuple["Dog", "Lion", "Elephant"]

 @return [Tuple]