Thanks Eli, that is much clearer. I can work with that explanation.
Your last paragraph indicates that the button API by itself could use some improvement.
How does one obtain a button to send to button-type if not button-at?
Also, a confusing part of the widget documentation is this:
-------
5.4 The ‘push-button’ Widget
============================
Syntax:
TYPE ::= (push-button [KEYWORD ARGUMENT]... [ VALUE ])
-------
The above syntax description of course looks like a lisp-function call of push-button.
At the very least, changing this thing's name to widget-button would prevent such
confusion.
-- Bob