def after
      return to_enum(__callee__) unless block_given?
      return if chain_tail?

      item = self.next

      loop do
        yield item
        item = item.next
      end
    end
def after
      return to_enum(__callee__) unless block_given?
      return if chain_tail?

      item = self.next

      loop do
        yield item
        item = item.next
      end
    end
Iterates over each item after this. If a block is not given an enumerator
 is returned.

 Note that raising a StopIteraion inside the block will cause the loop to
 silently stop the iteration early.