def reverse_each_item
      return to_enum(__method__) { count } unless block_given?
      return if empty?

      item = list_tail
      loop do
        yield item
        item = item.prev
      end
    end
def reverse_each_item
      return to_enum(__method__) { count } unless block_given?
      return if empty?

      item = list_tail
      loop do
        yield item
        item = item.prev
      end
    end
Iterates over each item in the list in reverse order. If a block is not
 given an enumerator is returned.

 @yield  [Listable] each item in the list.
 @return [Enumerable] if no block is given.