У меня тут вопрос - перепиливал одну штуку, написанную на loop recur. Я склонен думать, что это performance wise, а не потому что кто-то не может забыть С.
Стал бенчмаркать - пока все было написано на mapv разница в перформансе была в пределах погрешности ( 2,6 против 2,2). Но как только добавил в пару мест flatten, разница стала ровно в 16 раз в пользу recur (34 против 2,2).
Вопрос - я так понимаю, что если flatten остаётся, то единственный вариант проучить сопоставимый перформанс это transient? В mapv он под капотом юзается, да.