Things get interesting when you add a rich set of contexts. A simple context is the dictionary, which stores and retrieves values in a hash table. This corresponds to the naming mechanism used in Tcl and Python. Similar contexts are the tuple, array, struct, and packed dictionary, which differ mainly in how they store their values. For example, the packed dictionary stores its values in a contiguous memory block, so that it can be treated as a C struct.
Inheritance is implemented by contexts which forward their requests to other contexts.
The multiplexer context simulates an ordered merge of several other contexts. When given a request, it dynamically forwards the request to a list of contexts, in order, until one succeeds. Names which dynamically appear in early contexts shadow the remainder, similar to a UNIX command path. Other kinds of forwarding are also useful. For example, the cache context keeps a dictionary as well as a multiplexer.