Property Lists
==============
Every object in the system can have a "property list" that may be used
for information about that object. For example, a function may have a
property list that includes information about the source file in which
it is defined.
Property lists are implemented as assq lists (Note:Association
Lists).
Currently, property lists are implemented differently for procedures and
closures than for other kinds of objects. Therefore, when manipulating
a property list associated with a procedure object, use the `procedure'
functions; otherwise, use the `object' functions.
- primitive: object-properties obj
- primitive: procedure-properties obj
Return OBJ's property list.
- primitive: set-object-properties! obj plist
- primitive: set-procedure-properties! obj alist
Set OBJ's property list to ALIST.
- primitive: object-property obj key
- primitive: procedure-property obj key
Return the property of OBJ with name KEY.
- primitive: set-object-property! obj key val
- primitive: set-procedure-property! obj key value
In OBJ's property list, set the property named KEY to VALUE.
[Interface bug: there should be a second level of interface in which
the user provides a "property table" that is possibly private.]