/- hood |_ =diff:hood ++ grad %noun ++ grow |% ++ noun diff ++ json =, enjs:format |^ %+ frond -.diff ?- -.diff %block (block +.diff) ?(%merge-sunk %merge-fail) (desk-arak-err +.diff) ?(%reset %merge %suspend %revive) (desk-arak +.diff) == :: ++ block |= [=desk =arak:hood =weft:hood blockers=(set desk)] %+ merge (desk-arak desk arak) %- pairs :~ weft+(weft:enjs:hood weft) blockers+a+(turn ~(tap in blockers) (lead %s)) == :: ++ desk-arak |= [=desk =arak:hood] %- pairs :~ desk+s+desk arak+(arak:enjs:hood arak) == :: ++ desk-arak-err |= [=desk =arak:hood =tang] %+ merge (desk-arak desk arak) %+ frond %tang a+(turn tang tank) :: ++ merge |= [a=^json b=^json] ^- ^json ?> &(?=(%o -.a) ?=(%o -.b)) o+(~(uni by p.a) p.b) -- -- ++ grab |% ++ noun diff:hood -- --