How many times is the map block invoked, and what does `calls` contain afterward?calls = [] result = (1..Float::INFINITY).lazy .map { |n| calls << n; n * 2 } .first(3) result # ? calls # ?