Рефакторинги и упрощения кода в OptTree-Spec.ref (#245)
Рефакторинги и упрощения кода в OptTree-Spec.ref (#245)

Часть правок являются стилевыми и рефакторингами (вроде замены
Reduce с аккумулятором на Map или MapAccum), но есть и серьёзные.

Серьёзной правкой является замена FindReplace-GenericMatch-Val
на ApplySubst-Subst, вычисляющую почти композицию подстановок
(см. комментарий в исходнике). Это не рефакторинг, т.к. циклы
с вызовом FindReplace-GenericMatch-Val применяют подстановки
последовательно, а ApplySubst-*** — параллельно (что правильнее).
Из-за последовательной подстановки была проблема, проявившаяся
в коммите df750543, но могли быть и другие скрытые похожие проблемы.

Также Spec-RenameGenericMatch добавлен вызов Unique. На корректность
работы компилятора это не влияет никак, но могло изменить имена
переменных в сгенерированном файле, так что это уже не рефакторинг.

Расплетать правки по рефакторингам и не рефакторингам нет смысла,
поскольку затраты на это не окупают упрощения понимания истории.

Mazdaywik/simple-refal,Mazdaywik/simple-refal