module Hamster::List

def drop_while(&block)

def drop_while(&block)
  return self unless block_given?
  Stream.new do
    list = self
    list = list.tail while !list.empty? && yield(list.head)
    list
  end
end