вот вам охуенный лайфхак - если не знаете, как реализовать ту или иную хуйню - делайте по черчу, то есть сразу представьте себе минимальный апи для использования значения (свертку) и сделайте это типом, а остальной апи превратится в континуейшен ад, но зато все остальное будет работать как надо