[variable] setter

[procedure] setforms place-form

[procedure] metafn place-form

[procedure] expand-metafn-call expanded-funcargs

[procedure] expand= place-formval

[procedure] expand=list terms

Generalized setter support (sort of scheme:SRFI-17). I guess these
belong to "under-the-hood" and most casual users don't need
to care.

A global table setter keeps association of name (which appears
in the car position of the place form) and an expansion procedure
defined by defset.

setforms takes the form represents place
and returns the triplet (as the one returned by
expansion procedure given to defset).
The reason you need this is that you want to analyze
the case that the car of place-form isn't a symbol.

(Comment: It's a bit surprising to me that PG took CL-ish approach
over SRFI-17 approach here, since he
appears to emphasize symplicity over performance unless
the performance is really an issue. SRFI-17 is surprisingly
simple to implement and performs reasonably well; the penalty
drawback is that if you want to inline the setter functions
you have to tweak the engine. -- shiro)