class Enumerator::Lazy

def drop_while

def drop_while
  raise ArgumentError, "tried to call lazy drop_while without a block" unless block_given?
  Lazy.new(self) do |yielder, *values|
    data = yielder.backports_memo ||= {:dropping => true}
    yielder.yield(*values) unless data[:dropping] &&= yield(*values)
  end.__set_inspect :drop_while
end