@noprompt this isn't necessarily in the scope of meander but saw some of your comments on specter but curious your thoughts on how you'd express something like creating lenses in clojure
context: my shallow mental model of specter == lenses/cursors
problem space: UI databinding - some bound data => change shape to match expected shape => apply widget_render() function
the challenge lying in making it bidirectional, specifically in the inverse, and in turn making it composable
ex: a listview widget
Change src shape:
[{:name "foo" :addr "123 bar"} {:name "baz" :addr "456 baz"}] => [{:header "foo" :title "123 bar"} {:header "baz" :title "456baz"}]
but then being able to reflect this change:
[{:header "new foo" :title "123 bar"} {:header "baz" :title "new address"}] => [{:name "new foo" :addr "123 bar"} {:name "baz" :addr "new address"}]
note: i think this feels like a different enough problem domain that's orthogonal to meander. also concede to the fp folks that lenses do address this but i still find them "high cognitive load" (debugging, groking code weeks later, etc)
mostly curious if others have traversed this problem space before experimenting myself (current thought is using macros and m/rewrite to create that inverse mapping automatically from meander)