Я думаю, что zipper - прекрасная идея; он изящно предоставляет способ для поиска списка или дерева и создания функциональных возможностей локальных обновлений.
Асимптотически, затраты кажутся разумными. Но для перемещения по структуре данных требуется распределение памяти на каждой итерации, где обычный список или обход дерева - это просто преследование. Это кажется дорогим (пожалуйста, поправьте меня, если я ошибаюсь).
Являются ли расходы непомерно высокими? И что при каких обстоятельствах было бы разумно использовать молнию?