module Hamster::List

def map(&block)

def map(&block)
  return self unless block_given?
  Stream.new do
    next self if empty?
    Sequence.new(yield(head), tail.map(&block))
  end
end