built-in shelf
OmniMark provides a method of working with all the referents defined in a system by treating them as if they belonged to a shelf called referents. Most of the operations that are available to programmer-defined shelves are available for the referents shelf.
referents behaves like a programmer-defined shelf in that:
[...] or {...} operators,
repeat over or using.
The referents shelf is different than programmer-defined shelves in that:
new cannot be used to insert a new item on the referents shelf. New referents are created with set referent, or open...as referent.
remove cannot be used to insert or remove items on the referents shelf. Referents can be removed by attaching the referent to a stream with reopen, and then discarding the stream.
Various types of operations can be explicitly performed on the referents shelf. These include:
referents {...})
referents has key test)
key of referents [...])
number of referents)
referents is attached or this referent is attached test)
repeat over referents)
referents shelf (using using referents)