def rindex(obj = (missing_arg = true))
      obj = Erlang.from(obj)
      i = @size - 1
      if missing_arg
        if block_given?
          reverse_each { |element| return i if yield element; i -= 1 }
          return nil
        else
          return enum_for(:rindex)
        end
      else
        reverse_each { |element| return i if element == obj; i -= 1 }
        return nil
      end
    end
def rindex(obj = (missing_arg = true))
      obj = Erlang.from(obj)
      i = @size - 1
      if missing_arg
        if block_given?
          reverse_each { |element| return i if yield element; i -= 1 }
          return nil
        else
          return enum_for(:rindex)
        end
      else
        reverse_each { |element| return i if element == obj; i -= 1 }
        return nil
      end
    end
Find the index of an element, starting from the end of the tuple.
 Returns `nil` if no element is found.

 @overload rindex(obj)
   Return the index of the last element which is `#==` to `obj`.

   @example
     t = Erlang::Tuple[7, 8, 9, 7, 8, 9]
     t.rindex(8) # => 4

 @overload rindex
   Return the index of the last element for which the block returns true.

   @yield [element] Once for each element, last to first, until the block
                    returns true.
   @example
     t = Erlang::Tuple[7, 8, 9, 7, 8, 9]
     t.rindex { |e| e.even? }  # => 4

 @return [Integer]