мне пришлось сделать не очень элегантно - при добавлении новых данных я обновляю "корневые" агрегирующие функции, а остальные блоки сделал чистыми функциями, которые компилятор просто редюсит
По такому описанию не очень понятно, что именно ты хочешь сделать. Есть минимальный пример именно в коде?