08:57В общем, блок это помесь односвязного списка (каждый элемент указывает на следующий) и массива (каждый элемент проиндексирован для быстрого доступа), более того, блок имеет т.н. "строчные маркеры" и может [сохранять свой формат](https://github.com/red/red/wiki/New-line-markers-in-blocks). Большего сказать не могу, потому что сам не знаю :D
09:03Плюс у каждого блока (не только у них, у всех
series!) есть свой буфер с данными, на который (в моем понимании) существует ссылка. На один буффер могут ссылаться сразу несколько блоков, тем самым "расшаривая" данные:
>> blk1: [1 2 3]
== [1 2 3]
>> blk2: :blk1
== [1 2 3]
>> reverse blk1
== [3 2 1]
>> blk2
== [3 2 1]
чтобы такого безобразия не происходило, буфер можно скопировать с
copy (или
copy/deep, если внутри блока есть другие блоки со своими отдельные буферами)
>> blk1: [1 2 3]
== [1 2 3]
>> blk2: copy :blk1
== [1 2 3]
>> reverse blk1
== [3 2 1]
>> blk2
== [1 2 3]
09:06https://github.com/red/red/blob/master/runtime/datatypes/structures.reds#L54
https://github.com/red/red/blob/master/runtime/datatypes/block.reds
всё что сумел отыскать