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