playing around with mapping a stream (enumerable) while working items ahead of current read point

this example will end up calling sleep in parallel x2

enum = Enumerator.new { |y| 10.times { |i| y << i } }
enum = MapAhead.stream_map(enum, 2) { sleep 1 }
enum.each do |r|
  puts r
end

see specs