At the moment string ranges are only defined for certain subsets of Unicode. See the description under "Autoincrement precedence" in Synopsis 3.
More to the point, if you want to cycle through a range of codepoints, you probably want: map { .chr }, 44032..45208; I agree that the string form of the Range should be lazy, or at least shouldn't result in an infinite loop. Although I'm not exactly what should happen for ranges where the strings aren't iterable -- perhaps it should simply return failure at each step. A related question may be: what should the following produce? 1..4 :by(0) Thanks! Pm