Access update – corrected SETF expanders and more examples  In
the first released version of access I defined the setf versions
as (defun (setf accesses) (new o &rest keys)…). In order to make
this work out for plists and alists (where adding a key can
result in a new HEAD element), I was forced to return the
updated object rather than the “new” value that setf usually
returns. I was unhappy with this oddity at the time but didn’t
know directly how to fix it (obviously some macrology was in
order to capture the “place” being modified).  Today I looked
into the docs for define-set-expander and saw how to transform
my code into “correct” setf’s. To do this i transformed my
previous setf functions into set-access and set-accesses which
return (values new-value possibly-new-object). I then define my
setf expanders in terms of calling those functions and setting
the place passed in to possibly-new-object. It took a little
while to figure out and I’m still not entirely sure I wrote the
optimal common lisp for this.