module Hamster::Enumerable

def reduce(memo = Undefined)

def reduce(memo = Undefined)
  each do |item|
    memo = memo.equal?(Undefined) ? item : yield(memo, item)
  end if block_given?
  Undefined.erase(memo)
end