f = { |m| {:x, x<-(0..) } ** m }; g = f.(2); g.nextN(10); // answers [ 0, 1, 4, 9, 16, 25, 36, 49, 64, 81 ]