Nice attempt, I think there’s some bugs lurking though. For example this didn’t work:
(let& [{c :c
b :b
:as m
{aa :aa
:as nm} :a}
{:a {:aa :aa :bb :bb} :b :b :c :c}]
(println [aa b c])
[m nm])
So does this one:
(let& [{:keys [b c] :& m
{:keys [aa] :& nm} :a}
{:a {:aa :aa :bb :bb} :b :b :c :c}]
(println [aa b c])
[m nm])