run и *Run

run - если применяется к атому, run ведет себя как eval, а если к списку, то он оценивается последовательно и возвращается последний результат. Если задано смещение cnt, значение @ в среде вызова cnt'th используется во время этой оценки. cnt должно быть больше нуля.

*Run - глобальная переменная, которая может содержать список выражений prg, которые используются во время key, sync, wait и listen. Первый элемент каждого выражения должен быть либо положительным числом (таким образом, обозначая дескриптор файла для ожидания), либо отрицательным числом (обозначая значение тайм-аута в миллисекундах (в этом случае должно следовать другое число для хранения оставшегося времени)). Системный вызов poll(2) выполняется с этими значениями, и соответствующее тело prg выполняется, когда доступны входные данные или когда произошло тайм-аут (при этом @ установлено на дескриптор файла или значение тайм-аута).

https://picolisp.tiddlyhost.com/#run

Тот случай, когда вроде все очевидно, но есть нюансы, чтобы понять которые, нужна демонстрация и не одна. Так что надо внимательно смотреть примеры использования.