Ну я конечно довольно нехорошо сделал, что сразу не понял, насколько с процедурами, если позволять рекурсию, всё потребует переписывать и дописывать, и выдал частично рабочий код, а после этого оказалось, что там так много нужно сделать… Но есть надежда, что кто-нибудь перепишет его за меня.

Пока не могу ничего обещать, тут вокруг порядочный бардак творится временами, два дня нормально не высплюсь. Может, дальше будет лучше. Вечером посмотрю что-нибудь, мне уж больно хочется попробовать ту штуку с типами, а она потребует иметь рабочий транслятор, чтобы её как следует вкусить, так что мотивация пока есть.