hmm, it seems like the association list thing to do for a set would be to push a new pair onto the front of the association list, so that
(= x!foo 'bar)
(push '(foo bar) x)
On the other hand, if you want to modify existing associations in place:
(extend sref (com val ind) (and (acons com) (isnt (type ind) 'int)) (aif (assoc ind com) (= (cadr it) val))) arc> (= x '((a "A") (b "B") (c "C"))) ((a "A") (b "B") (c "C")) arc> (= x!b "X") "X" arc> x ((a "A") (b "X") (c "C"))