Если кому интересно, и при этом есть знание инглиша и желание пописать доки, можете про PR'ить мне в сюда: https://github.com/astynax/tea-combine - для выкладывания нужны хоть какие-то докстринги. Для функций и типов докстринги есть, нужны только для модулей. Туда накопипастить примеров кода из example projects. Ещё можно поругать код, да :)
Если кому интересно, и при этом есть знание инглиша и желание пописать доки, можете про PR'ить мне в сюда: https://github.com/astynax/tea-combine - для выкладывания нужны хоть какие-то докстринги. Для функций и типов докстринги есть, нужны только для модулей. Туда накопипастить примеров кода из example projects. Ещё можно поругать код, да :)
У пурскрипта halogen тоже в кортежи стейт композит - получается бинарное дерево. Только там ещё навёрнуты селекторы для доступа из одной ветки в другую, а я пока себе такой задачи не ставил.
В принципе бифунктор и для пары и для Either есть - пакеты tuple и either. Так что геттеры/сеттеры по путям в дереве сделать несложно. Только пока необходимости нет. Есть необходимость организовать проброс сообщений от внутренних элементов во внешние, но я пока не придумал, как это сделать так, чтобы API сносно выглядел
Есть мыслишка сделать на основе этой моей либы пример конструирования формы через комбинирование филдов - тут как раз автоматизация работы с подсостояниями и подсообщениями даст профит. Только нужно будет сделать то самое пробрасывание сообщения в над-апдейт, чтобы форма могла принять нажатие кнопки сабмита, например
А то я видел какой-то пакет, который абстрагирует работу с формами, но мне он не понравился - там стейт хранится в виде Dict String String, а это слабый тип