Okay, more edge cases here.
Both these examples:
pugs -e 'my @a = (1 .. Inf); shift(@a);'
pugs -e 'my @a = (1 .. Inf); unshift(@a, 10);'
take forever (or rather, however long Inf is, but that is a discussion
for another list).
I think this might be the wrong behavior. I would expect that for pop()
or push() which need to find the end of the list, and therefore take a
*very* long time. But why do shift() and unshift() need to find the end
of the list?
I freely admit that I may be completely naive on this subject, so
please correct me if I am wrong.