Ruby .. range problem?

There seems te be a problem with the to me intuitive ruby .. range.
I tried
puts (:c..:fs6).to_a
but it shows nothing in the protocol.

I tried this on a windows 10 laptop with SPI4.3.
I expected to see something in the protocol.

I got curious when I executed in SPI4.3
play (:c..:fs6).to_a.choose
and got

Runtime Error: [buffer 5, line 1] - SonicPi::Note::InvalidNoteError
Thread death!
Invalid note: :tgi

and with
play (:c..:fs6).to_a
I got
Invalid note: :h
and with
play :c..:fs6
i got no sound although i would expect the same sound as with
play range :c,:fs6

This seems to be similar in SPI3.3.1?

And problems certainly apply to other symbolic notes combinations like

play :c6..:e6 → no sound … bad … unexpected … is it a system failure?

compared to some sound with:

play range :c6,:e6 → expected little higher sound than play range :c,:fs6

And all this has nothing especially to do with symbolic notes
but with the intuitive ruby .. range.
Because the same problems arise with integer numbers like:
play 60..90 → no sound … in my opinion a system failure!!
play range 60,90 → some sound … OK!!

I mean I am a kind of nitpicking and very much prefer a SPI with
many simple intuitive ways to express musical ideas.

And in my opinion 6..79 is simpler and little bit more intuitive
than range 6,79.

But will .to_a be supported?

Or what is the SPI way planned to convert something into an array?

What is the use case where an array is required that wouldn’t be satisfied by a Sonic Pi ring?

Rings are frozen structures in Sonic Pi.
If I want to change just a single element of a large
array I can do it.

For rings I had to recreate or compose another ring.

Also only rotating activities need rings.
Just choosing so randomized activities do not need rings.

I hear the first time that Sonic Pi plans only to use rings in future.

So how I can do the following easily:

mchord = (chord :c3, :m7)
#mchord = (chord :c3, :m7).to_a # only this works

play mchord
sleep 1
mchord[2]=67 # adapting my chord

play mchord

You could define a helper to update individual values in a collection, maybe something like:

define :update do |coll, index, val|
  coll[0..index] + [val] + coll[index+1..coll.size]
end

mchord = (chord :c3, :m7)

puts mchord
play mchord

sleep 1

mchord = update(mchord, 2, 67) # adapting my chord

puts mchord
play mchord

I’m not convinced that a new data structure is necessary, but I think it would be nice to have something like that function built in to Sonic Pi.

Please note that Ruby’s .. range syntax is not formally supported by Sonic Pi. Whilst it should work as expected in most cases, it can’t be relied upon to continue working for future versions of Sonic Pi. Additionally, supporting ranges of notes isn’t completely obvious to me how it would make sense musically as it would always work over the chromatic scale.