В запись хранит списки. Необходимо в эти списки добавлять новые элементы. Типы списков разные. Сейчас это делается так (для каждого поля своя функция add)z
data T = T {a :: [T1], b :: [T2]}
add state v = let T {a = vs} = state in
state {a = v:vs}
Возможно ли это выразить (интуитивно, это может быть как-то выражено с использованием экзистенциальных типов, но как)?