Nb: refactor swapping, allow :swap/dissoc valf _return_ vals