fcn powers(m){ n:=0.0; while(1){vm.yield(n.pow(m).toInt()); n+=1} } var squared=Utils.Generator(powers,2), cubed=Utils.Generator(powers,3); fcn filtered(sg,cg){s:=sg.next(); c:=cg.next(); while(1){ if(s>c){c=cg.next(); continue;} else if(s