Property Lists
~~~~~~~~~~~~~~

The _property list_ of a symbol is an association list that is
attached to that symbol. The association list maps _properties_, which
are themselves symbols, to arbitrary values.

proc:putprop[args="symbol property obj",result="unspecified"]

If an association exists for _property_ on the property list of
_symbol_, then its value is replaced by the new value
_obj_. Otherwise, a new association is added to the property list of
_symbol_ that associates _property_ with _obj_.

proc:getprop[args="symbol property",result="obj"]

If an association exists for _property_ on the property list of
_symbol_, then its value is returned. Otherwise, `#f` is returned.

proc:remprop[args="symbol property",result="unspecified"]

If an association exists for _property_ on the property list of
_symbol_, then that association is removed. Otherwise, this is a
no-op.
