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:
The referents shelf is different than programmer-defined shelves in that:
newcannot be used to insert a new item on the referents shelf. New referents are created with
set referent, or
removecannot 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 has keytest)
key of referents [...])
number of referents)
referents is attachedor
this referent is attachedtest)
repeat over referents)